83 votes

Quels sont les meilleurs / communs verbes et actions d'URL RESTful?

J'essaie de trouver des informations sur les actions les plus courantes et les plus courantes sur les URL RESTful.

Par exemple, quelle URL utilisez-vous pour afficher les détails d'un élément, pour le modifier, le mettre à jour, etc.

 /question/show/<whatever>
/question/edit/<whatever>
/question/update/<whatever> (this is the post back url)
/question/list   (lists the questions)
 

hmm. merci à tous ceux qui ont aidé :)

171voto

Brian R. Bondy Points 141769

Utiliser des Url pour spécifier vos objets, pas vos actions:

Notez ce que vous avez d'abord mentionné n'est pas Reposante:

/questions/show/<whatever>

Au lieu de cela, vous devez utiliser votre Url pour spécifier vos objets:

/questions/<question>

Puis vous effectuez l'une des ci-dessous les opérations sur cette ressource.


OBTENIR:

Utilisé pour obtenir une ressource de requête une liste de ressources, et aussi à la requête de lire uniquement des informations sur une ressource.

Pour obtenir une question de ressources:

GET /questions/<question> HTTP/1.1
Host: wahteverblahblah.com

Pour la liste de toutes les questions de ressources:

GET /questions HTTP/1.1
Host: wahteverblahblah.com

POST:

Utilisé pour ajouter et mettre à jour une ressource

POST /questions/<existing_question> HTTP/1.1
Host: wahteverblahblah.com

Notez que ce qui suit est une erreur:

POST /questions/<new_question> HTTP/1.1
Host: wahteverblahblah.com

Si l'URL n'est pas encore créé, vous ne devriez pas utiliser la POSTE pour le créer tout specyfing le nom. Il devrait en résulter une ressource ne trouve pas d'erreur, car il n'existe pas encore. Vous devriez METTRE de la ressource sur le serveur en premier.

Vous pourriez bien faire quelque chose de ce genre pour créer des ressources à l'aide de POST:

POST /questions HTTP/1.1
Host: wahteverblahblah.com

Notez que dans ce cas le nom de la ressource n'est pas spécifié, les nouveaux objets URL d'accès serait retourné à vous.

SUPPRIMER:

Utilisé pour supprimer la ressource.

DELETE /questions/<question> HTTP/1.1
Host: wahteverblahblah.com

METTRE:

Utilisé pour créer une ressource, ou le remplacer. Lorsque vous spécifiez les ressources de la nouvelle URL.

Pour une nouvelle ressource:

PUT /questions/<new_question> HTTP/1.1
Host: wahteverblahblah.com

Pour remplacer une ressource existante:

PUT /questions/<existing_question> HTTP/1.1
Host: wahteverblahblah.com

...Oui, ils sont les mêmes.


L'aide RESTE dans les formulaires HTML:

La spec HTML5 définit GET et POST pour l'élément de formulaire.

La méthode contenu de l'attribut est un attribut énuméré avec les mots clés suivants:

  • Le mot-clé GET, la cartographie de l'état est-il, en indiquant le HTTP GET la méthode.
  • Le mot-clé le POST, la cartographie de l'état POST, en indiquant le HTTP POST la méthode.

11voto

Allain Lalonde Points 28717

En supposant que /questions/10 est une question valide, la méthode est utilisée pour interagir avec elle.

POST à ajouter

PUT pour le créer ou le remplacer

OBTENIR le consulter / l'interroger

et SUPPRIMER bien .. supprimer.

L'URL ne change pas.

3voto

tvanfosson Points 268301

Je vais aller sur une branche et devinez que vous ce que vous entendez est ce que sont les contrôleurs standard pour MVC quand vous dites "Repos" des url, depuis votre exemples peuvent être considérées comme non de"repos" (voir cet article).

Depuis Rails vraiment popularisé l'URL de style semble vous intéresser, je vous offre ci-dessous le contrôleur par défaut actions produites par le ScaffoldingGenerator en Ruby on Rails. Ceux-ci devraient être familiers à quiconque, à l'aide d'une application Rails.

Le scaffolding les actions et les vues sont: de l'index, une liste, de montrer, de nouvelles, de créer, de modifier, mise à jour, de détruire

En général, vous construire ce que:

http://application.com/controller/<action>/<id>

1voto

Vincent Robert Points 16530

Voici une cartographie de votre Url en utilisant le principe RESTE:

/question/show/<whatever>

Si vous identifier la question comme une ressource, il devrait avoir une URL unique. À l'aide de GET pour l'afficher (récupérer) est la pratique courante. Il devient:

GET /question/<whatever>


/question/edit/<whatever>

Maintenant, vous voulez que votre utilisateur d'avoir une autre vue de la même ressource qui lui permet de modifier la ressource (peut-être avec les contrôles de formulaire).

Deux options ici, votre application est une application (un site web), vous pourriez être mieux avec JavaScript afin de transformer la ressource en éditable une ressource de ono le côté client.

Si c'est un site web, alors vous pouvez utiliser la même URL avec des informations supplémentaires pour spécifier un autre point de vue, la pratique la plus répandue semble être:

GET /question/<whatever>;edit


/question/update/<whatever> (this is the post back url)

C'est pour changer la question, donc, est la bonne méthode à utiliser:

PUT /question/<whatever>


/question/list   (lists the questions)

La liste de la question est en réalité la mère de ressources d'une question, de sorte qu'il est naturellement:

GET /question


Maintenant vous pouvez avoir besoin de plus:

POST /question (create a new question and returns its URL)
DELETE /question/<whatever> (deletes a question if this is relevant)

Tada :)

-1voto

pbreitenbach Points 4542

Vos quatre exemples pourraient être:

 GET /questions/123
POST (or PUT) /questions/123 q=What+is+the+meaning+of+life
POST (or PUT) /questions/123 q=What+is+the+meaning+of+life
GET /questions
 

Pour ajouter une question:

 POST /questions q=What+is+the+meaning+of+life
 

Le serveur répondrait:

 200 OK (or 201 Created)
Location: /questions/456
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X