2010-03-30 6 views
3

C'est un projet sur lequel je travaille en ce moment.RESTful Conception de questions/réponses?

Mon application contient des questions avec des réponses à choix multiples.

L'URL de la question est dans le format suivant, avec GET & POST mappage à différentes actions sur le contrôleur de questions. Je me demande si cela vaut la peine de repenser cela dans un style RESTful. Je sais que je devrais présenter des réponses en tant que ressource, mais j'ai du mal à penser à une adresse qui serait naturelle pour répondre à cette question.

Une refonte serait-elle utile? Comment allez-vous structurer les urls?

Répondre

3

Je pense que ce serait mieux si vous associez:

POST url.com/:category/:difficulty/questions => ask question 
GET url.com/questions      => list all questions 
GET url.com/:category/:difficulty/questions => list questions for category and difficulty 
GET url.com/questions/:id     => show question 
POST url.com/questions/:id     => add answer 
PUT url.com/questions/:id     => edit question 
PUT url.com/questions/:question_id/:id  => edit answer with id :id 
GET url.com/questions/:question_id/:id  => show question with highlighted answer (like it is here on SO) 

Si vous le feriez:

POST: url.com/questions/:category/:difficulty  => 'answer' 

alors vous pourriez avoir une seule question à la catégorie spécifiée et la difficulté.

+1

+1. Il serait bien d'utiliser un slug comme ID au lieu d'un ID exposant la structure interne de l'application. –

2

Vous n'avez pas nécessairement besoin de traiter les réponses comme une ressource distincte: vous pouvez traiter une réponse comme un élément d'une question. En fait, je pense que ce serait mieux - une réponse ne vaut vraiment rien à moins qu'elle ne soit liée à une question.