Czym jest REST API? (#1)
REST API to jeden z tematów o których słyszał każdy programista, lecz inaczej wygląda to z jego pełnym zrozumieniem i praktycznym wykorzystaniem. Ta seria filmów ma na celu to zmienić. Pierwszy odcinek odpowiada na pytanie: Czym jest REST API?

- #
- #
- #
- #
- 177
- Odpowiedz







Komentarze (177)
najlepsze
Nawet nie wiadomo do końca jakie kody HTTP powinno zwracać w jakich sytuacjach i w jaki sposób obsługiwać błędy i powiadamiać o nich klienta.
To co przeciętne REST API robi z status kodami HTTP woła o pomstę do nieba. Te statusy są dobrze zdefiniowane w samym standardzie HTTP ale one zostały wymyślone po to by informować o stanie komunikacji
Jeden rabin powie że robiąc PUT i nie podając wymaganego pola (albo popełniając jakiś inny błąd merytoryczny/logiczny, nie syntaktyczny) API powinno zwrócić HTTP 200, inny rabin powie że HTTP 400.
W porownaniu do soapa ;)
Dodać, że REST czekał 10 lat na jako taki format jego opisu (openapi a wcześniej swagger bo wadl się nie przyjął).
Inna kwestia że REST to nie tylko RPC a cała filozofia w podejściu do tworzenia API.
Do tego momentu sprawa jest prosta, komplikacje pojawiają się w chwili gdy trzeba pobrać aktorów z danego filmu. Przy wsdl definiujesz operację getActorsByMovieId, natomiast przy prawidłowym reście powinno być /movies/:id/actors lub coś podobnego.
W praktyce widziałem bardzo niewiele
Komentarz usunięty przez moderatora
1) Faktycznie nie określiłem tego. Wziąłem pod uwagę dwa use case'y.
2) Sprzeczałbym się czy kompletnie nie związana z API, ale chyba rozumiem punkt widzenia.
3) To powiem w kolejnych filmach
4) Tak, mój angielski leży
@bobsonjones: Raczej, jak można było na siłę dopasowywać coś, co z natury jest RPC, do jakiegoś wydumanego modelu, który po prostu rozmija się z potrzebami i w ogóle rzeczywistością.
@Goglez: Bo REST to po prostu glorified CRUD. Od tego mamy repozytoria w DDD, żeby ten "niskopoziomowy" sposób rozumowania zaenkapsulować. Ponad nimi mamy agregaty, encje, sagi, zdarzenia - obiekty, które poprzez swój interfejs wyrażają koncepcje biznesowe abstrahujące od prymitywów "create", "read", "update" i "delete". Obiekty domenowe nie eksponują zasobów, jak REST, ale funkcjonalności. Te funkcjonalności opakowuje się następnie w konkretne przypadki użycia - dawniej tworzono klasy zwane serwisami aplikacyjnymi,
Ten aspekt REST API (a raczej protokołu HTTP) jest najczęściej mylony i implementowany niepoprawnie.