2009-08-08 4 views
0

Fragen Sie sich einfach - woher wissen Sie, wann Sie map.resources für ein bestimmtes Modell hinzufügen müssen? Alle von ihnen? Die, auf die Sie durch eine öffentliche API zugreifen möchten?Wann Modelle RESTful machen?

Danke.

+0

Bitte beachten Sie, dass eine Anforderung von REST die Auffindbarkeit von Ressourcen über Hypertext ist. Ihre öffentliche RESTful-API kann nur einen URI enthalten - den Einstiegspunkt. Wenn Sie andere URIs hinzufügen oder beschreiben, wie URIs geschrieben werden, ist es einfach RPC. – aehlke

Antwort

1

Ja, Sie stellen bewusst etwas als eine Art Service aus, entscheiden, ob Sie wollen, dass Sie tun möchten. Die Offenlegung eines Dienstes setzt eine gewisse Verpflichtung gegenüber Ihren Nutzern voraus, der allgemeine Ratschlag hält die Anzahl der offen gelegten Dienste unter Kontrolle, und sie verursachen steigende Support-Schulden.

+0

Also bedeutet das, dass ich für Modelle, die ich "privat" behalten möchte, meine eigenen Controlleraktionen verwende? –

0
  1. das Modell keine geheimen oder geschützten Daten (wie verschlüsselte Passwörter)
  2. , wenn Sie bieten den externen Zugriff auf ein Modell zeigen, sollten Sie im Wesentlichen machen es sich um eine öffentliche API. Sie sollten sich dann verpflichten, es zu dokumentieren, zu pflegen und stabil zu halten (insbesondere wenn Sie feststellen, dass es verwendet wird).
+0

"Das Modell sollte keine geheimen oder geschützten Daten (z. B. verschlüsselte Passwörter) offenbaren" Gibt es keine restful_authentication Fügen Sie einen map.resources: Benutzer zu Ihrer routes.rb-Datei hinzu, nachdem Sie das Generatorscript aufgerufen haben? –

+0

Rechts. Mit der richtigen Zugriffskontrolle können Sie Administratoren diesen Zugriff gewähren. Ich frage mich jedoch, was es heißt, solche Daten in der API offenzulegen. Benutzer, die Zugriff auf geheime Daten benötigen, sollten die normale Webschnittstelle verwenden oder vielleicht sogar direkt auf die Datenbank auf dem Server zugreifen. –

1

Zunächst fügen wir keine map.resources für Modelle hinzu. Wir fügen sie für unsere Controller hinzu.

Die map.resources und map.resource erzeugen RESTful URLs, die ein Modell und seiner entsprechenden Aktionen nicht Adresse zu tun; Es adressiert nur die Ressource selbst. Eine Ressource ist eine Kombination aus dediziertem Controller und einem Modell.

Normalerweise, wenn Sie eine komplette RESTful-App erstellen möchten, fügen Sie map.respources für alle Ihre Controller hinzu. Anschließend können Sie alle CRUD-Aktionen (Index, Neu, Erstellen, Bearbeiten und Aktualisieren) im entsprechenden Controller definieren, der auf eine bestimmte Ressource zugreift. Die Aktionen, die für eine bestimmte Ressource ausgeführt werden können, hängen von den Richtlinien ab, die von Ihrer Anwendung definiert werden. Wenn Sie eine Ressource haben, die die Benutzer (über Ihr Anwendungs-Frontend oder über eine API) Ihrer Anwendung nicht sehen wollen (oder etwas Ähnliches), definieren Sie einfach keine show-Aktion im entsprechenden Controller. Ähnlich andere Aktionen.

Sie sollten sich diese kleine tutorial über REST und Rails ansehen. Die Zeilen oben im Zitat werden schamlos aus demselben Dokument kopiert.

+0

Danke, ich schaue mir das an! –

Verwandte Themen