REST API i GET, Konwencja |
REST API i GET, Konwencja |
2.06.2016, 00:15:45
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Jaka jest dobra konwencja przy metodzie GET:
1) Zwrócenie wszystkich wierszy 2) Zwrócenie wszystkich rekordów z danej tabeli przynależnych do odpytującego usera? Jeżeli 1) to jak odpytać o to co w punkcie 2)? Osobna metoda, jakiś filtr? Chodzi o dobre praktyki, a nie o to jak to napisać. -------------------- |
|
|
2.06.2016, 07:17:53
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
/users - pobiera wszystkich
/users/1 - pobiera ID 1 /posts - pobiera wszystkie posty /users/1/posts - posty dla usera ID1 /users/1/posts/1 - Post dla usera ID 1 o ID = 1 (jeśli istnieje Itd. Oczywiście kontrola uprawnień i pobieranie tylko tych zasobów które można pobrać. Ten post edytował Pyton_000 2.06.2016, 07:18:57 |
|
|
2.06.2016, 23:50:56
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
No czyli punkt 2 ale mało wygodny dla klientów bo ja już po tokenie wiem kto pyta o posty.
/users/posts - posty dla usera, który odpytuje API -------------------- |
|
|
3.06.2016, 07:20:23
Post
#4
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) |
popatrz sobie an dokumentacje API w roznych serwisach np:
https://developer.github.com/v3/ Cytat Pewnie podobnie moglbys zrobic dla postow usera z zdodatkowa paginacja. (czyli to o czym wspomniales, ze dla zalogowanego usera nie musisz podawac id) Ten post edytował aniolekx 3.06.2016, 07:22:27 |
|
|
3.06.2016, 07:25:22
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
API robisz sobie jak ci się podoba, są opisane +/- standardy jak powinno to wyglądać ale nikt nie karze Ci się ich trzymać. Jeśli będziesz miał dobrą dokumentację do API to nie widzę żadnego problemu.
|
|
|
6.06.2016, 17:25:02
Post
#6
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) |
Najlepsza konwencja moim zdaniem, to taka, którą prezentują Facebook/Vimeo. Wystarczy wybrać najlepsze rzeczy.
Nazwa powinna od razu wskazywać czy dostaniemy jeden, czy więcej rekordów /users - pobiera kilku użytkowników /user/2 - pobiera jednego użytkownika o ID = 2 /articles - pobiera kilka artykułów /article/124 - pobiera jeden artykuł I teraz dochodzą parametry. Jeżeli chcemy pobrać użytkownika o ID 6 /user/6 Jeżeli artykuł o ID 5 /article/5 Jeżeli artykuły użytkownika o ID 6 /user/6/articles/ Jeżeli wszystkie artykuły /articles Wszystko powinno być wykonywane w kontekście użytkownika/właściciela aby potem nie mieć problemów z tokenami dostępu: Artykuły użytkownika o ID 6: /articles/user/6 - źle /user/6/articles - dobrze + zawsze można dodać alias do aktualnego użytkownika, którego tokenem się posługujemy /me/articles /me/friends i metoda HTTP: GET - pobieranie danych POST - wrzucanie danych PUT/PATCH - aktualizacja danych DELETE - usuniecie danych Ten post edytował SHiP 6.06.2016, 17:29:27 -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
6.06.2016, 17:46:11
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
+ zawsze można dodać alias do aktualnego użytkownika, którego tokenem się posługujemy /me/articles /me/friends Generalnie od tego momentu widzę częściową odpowiedź na moje pytanie Reszta jest dla mnie oczywista Co do GitHub'a to przykład stąd: https://developer.github.com/v3/repos/#list...ur-repositories trafiony, fajnie, logicznie. Pyton_000 - no właśnie dokumentacje mam średnią (bo będę czytać dopiero nad jakimiś generatorami) dlatego chce API było najmożliwiej logiczne i zgodne ze standardami. -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 03:49 |