2010-08-17 3 views
3

Я понимаю, как дизайн RESTful должен функционировать, но при реализации блога не удается решить, как лучше представить форму для вставки нового сообщения в блоге. Будет ли example.com/posts/create разумным? Это похоже на то, что «создать» не успокаивает, как будто он помещает информацию в URI, который должен быть просто представлен PUT/POST.Что такое RESTful способ представления формы?

Как это сделали бы другие?

ответ

2

Посмотрите на Rails Routing для просмотра Rails на этом.

Verb URL   Controller Action Used For 
GET /photos/new Photos  new  return an HTML form for creating a new photo 
POST /photos  Photos  create create a new photo 

Таким образом, в вашей ситуации, GET /posts/new, чтобы получить новый пост форму, но POST /posts создать новый пост.

Дело в том, что вы публикуете новое сообщение в блоге, но для этого вам необходимо получить форму, которая позволит вам это сделать. В некотором роде новая форма сообщения в блоге - это еще один (статический) ресурс.

+0

Вот где мой ум был ведущим, но это обнадеживает другие люди соглашаются :) Спасибо. – tsvallender

0

Используйте POST для отправки информации для вставки, а затем страницу перенаправляет на новый идентификатор в URL-адресе. Вы не хотите получать новую информацию по URL-адресу, так как пользователь, обновляющий URL-адрес, будет публиковать дважды.

+0

Да, но как насчет отображения формы для вставки нового сообщения? Вот о чем идет речь. – Skilldrick

2

Если вам не нравится то, как URL чувствует, а затем изменить его на:

GET http://example.com/posts/createform 
+1

Я думаю, что это поражает гвоздь на голове. Вы просто изменили глагол 'create' для существительного' createform'. Действительно, просто '/ posts/form' тоже работает, я думаю. Но, пожалуйста, не забудьте разрешить клиентам открывать URI формы где-то еще! – mogsie