Jestem głodny – zjem nagłówek HTTP
„Czyli poznanie zasady działania nagłówka HTTP”
Czym jest REST API ?
REST API czyli Representational State Transfer bardzo popularna architektura oprogramowania w informatyce. Wykorzystywany do połączenia między dwoma systemami informatycznymi w danych lokalizacjach. Sama zasada REST API jest prosta to udostępnienie do określonych zasobów czyli danych potrzebnych dla drugiego systemu informatycznego. Co ma wspólnego HTTP z REST API. HTTP jest korzystany do codziennej komunikacji między systemami. Warto wspomnieć że wykorzystuje się aż 4 metody HTTP do komunikacji, oto one:
- GET – wyświetlenie wszystkich zasobów lub jednego zasobu.
- POST – utworzenie nowego zasobu. Zwrócenie statusu 201.
- PUT – aktualizacja zasobu w bazie danych.
- DELETE – kasowanie zasobu w bazie danych.
Określany jako CRUD (CREATE – POST, READ – GET,UPDATE – PUT, DELETE- DELETE)
Aby wzorzec architektoniczny był standardem to REST API musi wykorzystywać model dojrzałości Richardsona opisuje on podstawowe elementy wzorca. Model dojrzałości Richardsona zbudowany jest z 4 poziomów, każdy poziom określa priorytet REST API:
- Poziom 0 – zdalnie wywołanie procedur
- Przesyłanie danych za pomocą protokołu HTTP
- Konwertowanie danych w JSON lub XML.
- Wykorzystuje protokół JSON-RPC.
- Poziom 1 – zasoby REST API
- Identyfikacja zasobu za pomocą URI.
- Tworzenie hierachii zasobów za pomocą URI.
- Poziom 2 – metody HTTP
- Wykorzystywanie metod HTTP dla wzorca REST API.
- Stworzenie CRUD.
- Poziom spełnienia wymagania dla REST API.
- Poziom 3 – HATEOAS
- Ten poziom spełnia wymagania dla RESTful.
- Zawiera HATEOAS czyli hipermedia jako mechanizm obsługi stanu aplikacji.
- Mechanizm dostarczania możliwości nawigacji przez zasoby bez wiedzy o konkretnych URI.
HATEOAS określany jako Hypertext As the Engine Of Application State dodatkowe sterowanie zasobami poprzez linki „hypermedia” nie tylko ułatwia dostęp do zasobów sama w sobie ma dokumentację i również optymalizuje kod systemu odbierające dane. Zasada jest prosta otrzymujemy JSON które ma specjalne pole _links w nim zawiera:
-
- Type – nazwa zasobu.
- Link – URI do zasobu.
- Method – metoda HTTP jaki klient powinien użyć.
Ważny element który programiści nie zwracają uwagę jak mają być wracane zasoby u klienta oraz serwera. Pomaga nam standard JSON-RPC określa zasadę budowy zasobów dla wszystkich endpointów. Dla serwera:
Zapytanie klienta:
Nazwy zmiennych:
- Jsonrpc – wersja specyfikacji JSON-RPC.
- Id – id zapytania oraz wartość określonego zasobu.
- Method – nazwa metody.
- Params – tablica obiektów do zapytania.
- Result: dane zwrócone przez wywołanie metody.
- Error – określony błąd błędu.
W następnym cyklu będzie omawiane zbudowanie prostego REST API w standardzie JSON-RPC oraz zbudowanie prostego sniffera.