Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> REST API i GET, Konwencja
markonix
post 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ć.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 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
Go to the top of the page
+Quote Post
markonix
post 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


--------------------
Go to the top of the page
+Quote Post
aniolekx
post 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
Go to the top of the page
+Quote Post
Pyton_000
post 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.
Go to the top of the page
+Quote Post
SHiP
post 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
Go to the top of the page
+Quote Post
markonix
post 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%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 03:49