Prowadzę badania nad projektowaniem usług internetowych RESTful i doszedłem do tego, co uważam za kluczowy punkt decyzji, więc pomyślałem, że zaoferuję to społeczności, aby uzyskać porady.
Zgodnie z zasadami architektury RESTful chcę zaprezentować wykrywalny interfejs API, dlatego będę wspierał różne czasowniki HTTP tak dokładnie, jak to możliwe. Moja trudność wiąże się z wyborem reprezentacji tych zasobów. Widzę, że byłoby mi łatwo wymyślić własny interfejs API, który obejmuje sposób prezentacji wyników wyszukiwania i sposób udostępniania linków do innych zasobów, ale byłoby to unikalne dla mojej aplikacji.
Czytałem o Atom Publishing Protocol ( RFC 5023 ) i o tym, jak OData promuje jego użycie, ale wydaje się, że dodaje dodatkowy poziom abstrakcji w stosunku do (obecnie) raczej prostego API.
Moje pytanie brzmi: kiedy programista powinien wybrać AtomPub jako swój sposób reprezentacji - jeśli w ogóle? A jeśli nie, jakie jest obecnie zalecane podejście?
źródło
Odpowiedzi:
Po przeprowadzeniu sporej ilości badań w tym zakresie, oto moje ustalenia:
Wydaje się, że istnieją 3 podstawowe formaty i podejścia: AtomPub, OData i HAL. Podsumowałem badania dla każdego poniżej.
AtomPub
OData
Pro: Zapewnia dobrą strukturę zapytań URI
Con: Wprowadza kompletny framework (zasadniczo zastępuje Dropwizard)
HAL
Kiedy więc powinienem używać AtomPub?
Z powyższego należy wybrać AtomPub, jeśli jesteś zadowolony z dodatkowej złożoności i chcesz używać standardowych bibliotek dla swoich klientów. Prawdopodobnie tak będzie w przypadku dużego repozytorium dokumentów.
Dodałem więcej szczegółów (które są poza zakresem tego pytania) w ostatnim artykule na blogu, który może być pomocny dla innych.
źródło