Cykl o HTTP – Czym jest REST API ?

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:

  1. Poziom 0 – zdalnie wywołanie procedur

 

  • Przesyłanie danych za pomocą protokołu HTTP
  • Konwertowanie danych w JSON lub XML.
  • Wykorzystuje protokół JSON-RPC.

  1.  Poziom 1 – zasoby REST API
  • Identyfikacja zasobu za pomocą URI.
  • Tworzenie hierachii zasobów za pomocą URI.

  1. Poziom 2 – metody HTTP
  • Wykorzystywanie metod HTTP dla wzorca REST API.
  • Stworzenie CRUD.
  • Poziom spełnienia wymagania dla REST API.

  1. 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.

Jestem pasjonatem technologii webowej w kierunkach mikroserwisów „REST API” oraz CMS. Ważnym aspektem w życiu jest wybrać konkretny język programowania i je wtajemniczać . Języki programowania które rozwijam swoje umiejętności to PHP , Python oraz JavaScript. Moim największym atutem jest szybkie przekwalifikowanie się na inną technologię i języki programowania.

Site Footer