2013-07-15 21 views
9

Nie bardzo wiem, jak sensownie zbudować API REST (lub REST-like).Potrzebujesz pomocy w zrozumieniu punktów końcowych interfejsu REST API

Wyobraź sobie API do tworzenia i wysyłania e-maili z biuletynami. Możesz mieć następujące rzeczowniki/zasoby: biuletyny (temat, treść itp.), Listy adresowe (kolekcje odbiorców) i odbiorców (adresy e-mail i powiązane dane).

Więc można użyć PUT stworzyć zasób i być zwrócony jego identyfikator:

/newsletter 
/list 
/user 

można uzyskać informacje na temat zasobu za pomocą otrzymujemy:

/newsletter/[id] 
/list/[id] 
/user/[id] 

można zaktualizować istniejący zasób za pomocą PATCH (czy powinien to być POST?):

/newsletter/[id] 
/list/[id] 
/user/[id] 

Możesz usunąć zasób przy użyciu polecenia DELETE :

/newsletter/[id] 
/list/[id] 
/user/[id] 
  1. Czy powyższe są prawidłowe?

  2. Jakie punkty końcowe są sensowne dla działań takich jak wysyłanie biuletynu do listy, dodawanie użytkownika do listy?

Czy ma to sens i czy jest UZYSKIWANY?

/newsletter/[newsletter_id]/send/[mailinglist_id] 
/list/[list_id]/add/[user_id] 
/list/[list_id]/remove/[user_id] 

Czy to zbędne lub nieprzydatny mieć list/[id]/add/[id] i list/[id]/remove/[id] punktów końcowych dla wykazów, kiedy użytkownicy mogą być dodawane lub usuwane poprzez plaster /list/[id]?

Co z wyszukiwaniem identyfikatora użytkownika za pośrednictwem usługi takiej jak adres e-mail lub nazwa? Lub uzyskanie listy za pomocą identyfikatora, takiego jak jego nazwa lub kiedy został utworzony?

Odpowiedz

7

dość dużo przybity go, z wyjątkiem sytuacji /list/[list_id]/add/[user_id] i /list/[list_id]/remove[user_id], bo trzeba czasowniki w adresie URL - to jest cel metod HTTP.Zmienić je, na przykład:

PUT (or POST) to /list/[list_id]/users/ for adding a user to the list 

i

DELETE to /list/[list_id]/users/[user_id] 

dla wyszukiwania, pójdę z parametryzowanego URL do listy zasobów, takich jak:

/newsletter/?name=dfjkhskdfh 
+0

Co z czasownikiem "wyślij"? – jeremiahs

1

Te czasowniki często mylone: ​​

  1. Aby utworzyć jednostkę użyć POST
  2. Aby zaktualizować - PUT

te rzeczy mogą być traktowane w sposób następujący:

POST /newsletters/[newsletter_id]/mailinglists/[mailinglist_id]/mailingfacts - wykonuje wysyłanie listów, to jak dodanie fakt mailingu do kolekcja

/lists/[list_id]/[user_id] - dodaje użytkownika do listy

/lists/[list_id]/[user_id] - usuwa użytkownika z listy.

Powiązane problemy