2010-03-14 6 views
13

Ich bin mit Ruby On Rails der Routing-System vertraut und auch, wie Code Igniter und PhpCake Route Dinge aber ist es mehr als eine zentrale Lage mit dem Sie Routen auf einer Verzeichnisstruktur auf Basis geben? Gefällt Ihnen diesesWas ist Restful Routing?

controller/action/id/ 
Admin/editUser/22 

Antwort

2

Ein großer Teil des Ganzen ruhig ist, dass man die verschiedenen HTTP-Methoden verwenden, sollten verschiedene Aktionen darzustellen.

Zum Beispiel in Rails, wenn Sie eine HTTP Delete an /users/[id] senden würden, würde dies bedeuten, dass Sie diesen Benutzer löschen möchten. HTTP Get würde eine entsprechende Darstellung des Benutzers abrufen. HTTP Put kann einen Benutzer aktualisieren oder erstellen.

Dies sind nur einige Beispiele, aber da gibt es keinen Standard für RESTful API in HTTP ist dies nicht in allen Fällen korrekt.

12

RESTful Rails Routen, ich glaube, dass dies das Prinzip der REST

/users/  method="GET"  # :controller => 'users', :action => 'index' 
/users/1  method="GET"  # :controller => 'users', :action => 'show' 
/users/new method="GET"  # :controller => 'users', :action => 'new' 
/users/  method="POST" # :controller => 'users', :action => 'create' 
/users/1/edit method="GET"  # :controller => 'users', :action => 'edit' 
/users/1  method="PUT"  # :controller => 'users', :action => 'update' 
/users/1  method="DELETE" # :controller => 'users', :action => 'destroy' 
+1

außer natürlich, dass '/ users/new' und'/users/1/edit' nicht URIs REST (wegen in ihnen ein Verb mit). Das heißt, Sie könnten "funktionale Seiten" als eine Ressource haben, die Sie "GET" dh "/ users/tools/creation_form" und "/ users/tools/edit_form/1" haben können (beachten Sie im zweiten URI, dem ich einen Benutzer hinzugefügt habe ID, um das Formular für Sie zu füllen) – thecoshman

20
zeigt

Die Grundvoraussetzung ist, sondern ausschließlich auf die URL zu verlassen, um anzuzeigen, welche Webseite, die Sie gehen wollen (und nur mit dem eine Methode), es ist eine Kombination aus VERB und URL.

diese Weise die gleiche URL, wenn sie mit einem anderen Verb (wie GET, PUT, POST, DELETE) verwendet, werden Sie auf eine andere Seite bekommen. Dies sorgt für sauberere, kürzere URLs und ist besonders für CRUD-Anwendungen geeignet, die die meisten Web-Apps sind.

1

es Karten HTTP VERB + URL zu einer bestimmten Aktion in der Steuerung

Beispiel:

GET /users/1  

geht an:

:controller => 'users', :action => 'show' 

die vollständige Abbildung zu sehen, gehen Sie zum Terminal und geben Sie ein:

rake routes 
0

@edtsech ist richtig. Ich möchte hier noch eine Sache hinzufügen.

Im Fall der Aktualisierung ist die Methode „POST“ mit einem versteckten Feld, das die Daten aktualisiert werden müssen, enthält.

So PUT = POST + verstecktes Feld.

+0

Ich verstehe nicht, was Sie hier zu sagen versuchen ... POST ist ganz bestimmt nicht zum Aktualisieren von Datensätzen gedacht ... und mit "verstecktes Feld" meinen Sie die Nutzlast ? – thecoshman

+0

Um den Datensatz in Rails zu aktualisieren, verwenden wir die POST-Anfrage mit versteckten Feld, das die Nutzlast enthält. – Xeeshan