Проектирование маршрутизаторов и контроллеров в архитектуре RESTful - PullRequest
0 голосов
/ 22 апреля 2010

Простые примеры контроллеров в архитектуре RESTful предлагают четыре действия на контроллер - index, create, update, delete - в соответствии с GET, POST, PUT и DELETE.Но помимо этого я все еще нахожу дюжину маленьких решений:

  • У вас есть другой контроллер для сбора ресурсов (example.com/things), чем для отдельного ресурса (example.com/things/123)?
  • При использовании отдельных ресурсов предпочтительно передавать идентификатор в качестве параметра для действия или задавать его в качестве переменной-члена в классе контроллера?
  • Как вы относитесь к маршрутизации URI?Старый проверенный подход example.com/{controller}/{action} рушится.
  • А как насчет подчиненных ресурсов, таких как example.com/user/123/things?Нужно ли явно определять каждый маршрут для них или есть способ написать хорошее общее правило?
  • Различаете ли вы запросы API и запросы браузера, или вы направляете их через один и тот же контроллер и / илиметоды контроллера?

Очевидно, что вы могли бы пойти на эти вещи дюжиной разных способов, но я бы очень хотел, чтобы не пришлось заново изобретать колесо, если другие решали проблему.Я ищу какой-либо совет или, возможно, лучше некоторые хорошие учебники, которые касаются этих (и других связанных) практических вопросов при разработке RESTful MVC Framework.

1 Ответ

0 голосов
/ 22 апреля 2010

У моих контроллеров есть методы Get (), Put (), Post (), Delete () и т. Д. Я думаю, что использование «условий действия» запутывает проблему.

Я всегда создаю другой контроллер для коллекций и отдельных вещей. Для меня это очень разные ресурсы, и я хочу, чтобы методы HTTP делали разные вещи.

Маршрутизация у меня отличается от большинства фреймворков. Я сопоставляю не весь URL, а сегмент за сегментом. Это похоже на работу SubResources в JAX-RS

Для сервисов, которые имеют только небольшое количество различных ресурсов, тогда использование соответствия шаблону URL в стиле регулярных выражений вполне допустимо. Я только что обнаружил, что он начал разрушаться, как только вы начнете иметь дело с сотнями ресурсов.

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