Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: REST API i GET
Forum PHP.pl > Forum > PHP
markonix
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ć.
Pyton_000
/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ć.
markonix
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
aniolekx
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)
Pyton_000
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.
SHiP
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
markonix
Cytat(SHiP @ 6.06.2016, 18:25:02 ) *
+ 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 wink.gif Reszta jest dla mnie oczywista wink.gif

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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.