2 Stimmen

Routing-Probleme für RESTful API - Rails

Ich baue eine API für eine Web-App auf, die ich seit einiger Zeit entwickle. Ich habe mit dem Benutzermodell angefangen. Der Benutzerbereich der API wird es entfernten Clients ermöglichen, a) Benutzerdaten abzurufen, b) Benutzerinformationen zu aktualisieren und c) neue Benutzer zu erstellen. Ich habe all das zum Laufen gebracht, aber es scheint nicht richtig eingerichtet zu sein. Hier sind meine Fragen:

  1. Soll der API-Endpunkt Benutzer oder Benutzer sein? Was ist die bewährte Praxis?
  2. Ich muss die Aktion am Ende hinzufügen, was ich erwarten würde, dass sie stattdessen vom Request-Typ erfasst wird, sodass ich sie nicht explizit angeben muss. Wie richte ich meine Routen richtig ein, um die Methode für geschützte Aktionen nicht einschließen zu müssen?

Lassen Sie mich einige Beispiele geben:

GET-Anforderung für Anzeige - möchte, dass es ohne "show" funktioniert

PUT-Anforderung für Aktualisierung - möchte, dass es ohne "update" funktioniert

Erstellen - funktioniert mit oder ohne 'create', was ich für all diese Aktionen möchte

Wie strukturiere ich Routen, um den Aktionsnamen nicht zu benötigen? Ist das nicht der übliche Weg für RESTful APIs?

Hier ist meine Route für die API jetzt:

map.namespace :api do |route|
  route.resources :users
  route.resources :weight

Ich verwende restful authentication, die die http-auth in curl handhabt. Jede Anleitung zu den Routenproblemen und bewährten Praktiken bei Singular versus Plural wäre sehr hilfreich.

Vielen Dank! -A

1voto

Dieseltime Punkte 942
  1. Singular vs plural endpoints for restful APIs depends on the model you are returning. Your URL should describe that there can be multiple instances of the 'users' resource.

  2. Your routes are set up correctly. The GET and PUT requests should be including the ID of the user in the endpoint, i.e.

    curl -u rmbruno:blah http://app.local/api/users/1

See this answer for an overview of why rails creates these "convenience" urls for CRUD actions: Rails - Redundante RESTful Aktionen für map.resources? (neu, erstellen)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X