Как вы обрабатываете «действия» с ресурсами в дизайне RESTful, например, помечаете прочитанное письмо? - PullRequest
3 голосов
/ 28 января 2009

Как бы вы интегрировали такие вещи в дизайн RESTful?

  • Пометка письма как прочитанного
  • Голосование по истории
  • Сообщение о неприемлемом сообщении

Кроме того, как бы вы сделали это таким образом, чтобы можно было сделать небольшую иконку-ссылку или кнопку, чтобы выполнить действие без особого колдовства?

Ответы [ 2 ]

4 голосов
/ 28 января 2009

Это зависит от того, что вы делаете. Иногда все, что вам нужно, это сместить вашу точку зрения с «выполнения действия над ресурсом» на «создание другого, другого, но связанного ресурса».

Голосовать за историю легко: ресурс для голосования, который вы можете создавать, просматривать и т. Д. То же самое с отчетом. Это может быть применено к чему угодно, вместо того, чтобы отмечать Орден как отправленный, вместо этого он будет иметь Представление и т. Д. Ключ должен понять, как преобразовать ваш глагол в существительное.

Пометка письма как прочитанного немного отличается. Для этого я бы использовал виртуальный атрибут: создание собственных методов установки в вашей модели (например, mark_as_read =) позволит вам передать mark_as_read через массив params в действии #Update.

Взять пример голосования по истории. Что бы вы сделали, это создали модель голосования, которая принадлежит истории. Создайте контроллер Votes и вложите его в контроллер Stories в файле маршрутов. затем вы можете использовать свои маршруты вложенных ресурсов (передавая свою запись истории), чтобы легко создавать голоса, ограниченные отдельной историей.

Обратите внимание, что ресурс не обязательно должен быть подкреплен моделью базы данных, хотя это будет правильная форма. В этом случае вы всегда можете просто изменить запись Story, сохраняя при этом RESTfulness и возможность при необходимости легко расширяться до полной модели.

0 голосов
/ 28 января 2009

Это незаменимый ресурс для всего остального:

http://oreilly.com/catalog/9780596529260/ остальные веб-службы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...