Handling images WebAPI (+examples)

Handling images WebAPI (+examples)

WebAPI is used to serve data from server. One time of data could be images. In this post I will show how to write WebAPI methods operating on images data. So at first we must decide where we want to store our images. Let’s suppose, that we have database that store our application data. We have 2 possibilities: to store images in files or directly in database. This two approaches has following adventages: files easy to test fast requires additional…

Read More Read More

Interceptor in Angular

Interceptor in Angular

$http service This service is an Angular method for making HTTP request for external resources. All HTTP requests has an asynchronous nature. Because of that, all operations return promises. Generally, this service could be used by defining parameters directly, like below or by using shortcut methods Interceptor in Angular The same as in previous post about interceptor in Angular you can also setup global mechanism to intercept each HTTP request. It can be useful for error handling, logging or authentication….

Read More Read More

Zapytania warunkowe oparte na sumach kontrolnych

Zapytania warunkowe oparte na sumach kontrolnych

W tym przypadku stawiane warunki są oparte na pewnym kluczu dla zasobu. Powinien on być silnym walidatorem, a więc zmieniać się za każdym razem, gdy zasób ulegnie zmianie. Definiuje się go za pomocą nagłówka ETag: Response Cache-Control:public, max-age=31536000 ETag: “15f0fff99ed5aae4edffdd6496d7131f” Gdy klient chce ponownie pobrać dany zasób, informuje serwer o ETagu aktualnie przechowywanym w cache’u. Gdy ten się zmieni należy ponownie przesłać treść zasobu. Request If-None-Match: “15f0fff99ed5aae4edffdd6496d7131f” W tym przypadku istnieją 3 użyteczne nagłówki: If-Match – używane do warunkowego wykonywania…

Read More Read More

Cache oparty na czasie

Cache oparty na czasie

Walidatory Wyróżniamy 2 rodzaje walidatorów zasobów: silne – występują wtedy, gdy każda zmiana zawartości zasobu powoduje wykrycie zmiany w walidatorze słabe – gdy wykrywanie zmian w walidatorze opiera się na danych niezależnych od wartości zasobu (np. na informacjach o czasie) Zgodnie z powyższą definicja wyróżniamy dwa rodzaje cache’a: Cache oparty na czasie Polega on na tym, że przechowywany zasób może być używany tylko przez zdefiniowany czas. Do tego celu używany jest nagłówek: Last-Modified, który wskazuje na datę ostatniej modyfikacji zasobu….

Read More Read More

Nagłówki cache

Nagłówki cache

Age W przypadku, gdy jako wynik zapytania jest zwracany zasób przechowywany w cache, nagłówek ten mówi nam, ile czasu (w sekundach) minęło od pobrania treści rekordu. Cache-Control Jest on stosowany do sterowania zachowaniem cache. Może posiadać niżej wymienione parametry: max-age – wskazuje jak długi czas życia (w sekundach) przechowywanego zasobu jest akceptowalny; może być używany zarówno w zapytaniach jak i odpowiedziach. Ustawienie max-age: 0 powoduje, że zasób jest dynamiczny i nie podlega cache’owaniu. Jednak nie powinniśmy tego nadużywać, bo dla…

Read More Read More

Sprawdzanie aktualności rekordu

Sprawdzanie aktualności rekordu

Gdy klient posiada dany zasób w cache’u, a następnie wykonuje zapytanie o ten sam zasób, konieczne jest sprawdzenie jego aktualności. Jest to wykonywane za pomocą zapytań warunkowych. Polegają one na wysłaniu pytania o zasób, jednak zasób ten zostanie przesłany z powrotem tylko w przypadku spełnienia określonych warunków. W przypadku sprawdzania aktualności rekordu stosuje się dwa podejścia: Sprawdzenie po dacie ważności zasobu Sprawdzenie po „sumie kontrolnej” zasobu Oba sposoby zostaną później szerzej omówione. Serwer może odpowiedzieć na takie warunkowe zapytanie na następujące…

Read More Read More

Angular – KendoUI Grid – How to integrate it properly

Angular – KendoUI Grid – How to integrate it properly

If you want to use both Angular and Kendo UI components sooner or later you will need to integrate this two libraries. The majority of this task is quite easy and well documented (http://demos.telerik.com/kendo-ui/grid/angular), but the tricky part is in integration with Angular $http service (or in Angular factories in general). You can use standard Kendo Grid functionality like: As you can see, you should add some data to each request and also there is custom behaviour when this request…

Read More Read More

Aktualność obiektu w cache

Aktualność obiektu w cache

Obiekt w cache możemy nazwać aktualnym, jeżeli nie minął jeszcze jego termin ważności. Czas ten jest liczony od momentu pobrania zasobu do momentu określonego przez nagłówki takie jak Expires lub Cache-Control. Jeżeli serwer chce spowodować unieważnienie zachowanego obiektu, powinien on wysłać datę ważności z przeszłości. Dzięki temu podczas najbliższego sprawdzania poprawności lub pobierania zawartości zasobu zostanie on bezwzględnie odświeżony (pobrany ponownie z serwera). Do momentu aż minie czas ważności danego obiektu wszelkie żądania jego pobrania spowodują skorzystanie z zapamiętanej w cache wartości….

Read More Read More

Expression> vs FUNC

Expression> vs FUNC

Both types of types: Expression<Func<T>> and Func<T> are very similar and could be used for the same type of tasks. I will try to dispel any doubts, when to use expressions or when just functions. Let’s begin with Func<TResult> type. There is simple shortage encapsulation for delegate type taking no argument and returns value of type TResult. You can define this delegate explicitly: There are also types like Func<T, TResult>, Func<T1, T2, TResult>, … which differ only with number of input…

Read More Read More

%d bloggers like this: