структурирование REST API для приложения RAILS

0

У нас есть смешанное приложение html и api. Мы решили разбить стандартную часть html на обычные контроллеры и поместить api в api_CONTROLLER_NAME. Итак, у нас есть items_controller.rb и api_items_controller.rb. Мы используем jquery для публикации обновлений и создания элементов. ОДНАКО, мы отправляем сообщения в одну конечную точку /api/items и основываясь на том, есть ли идентификатор в параметрах, определяют, должен ли быть создан новый элемент или элемент должен быть обновлен. Мне это очень неудобно, и мы думаем, что мы должны публиковать их для создания и обновления, но поскольку поддержка браузера - это некоторая проблема с точки зрения put и delete, аргумент заключается в том, что мы должны делать это таким образом.

Поэтому у меня есть два вопроса: (1) Разделение между двумя контроллерами плохой дизайн? Или мы должны пройти через один контроллер? Я лично считаю, что два контроллера в порядке. (2) Делает ли создание и обновление в одном методе ok или мы должны их разделить и, аргумент о поддержке браузера несколько фиктивный? Нам нужно только поддерживать IE8 и выше.

Теги:
rest
design

1 ответ

1
Лучший ответ

1) Я обычно кодирую свой api в своем собственном пространстве имен, потому что его логика отличается от логики ядра. Так что разные контроллеры звучат хорошо для меня

2) если вы требуете использовать REST, используйте REST. Так что разделить создание и обновление. Не беспокойтесь о браузере. FYI, Rails сам обманывает PUT со скрытым полем в формах (_method)

  • 0
    спасибо, я согласен с обоими пунктами. PUT будет использоваться для вызова API XHR, поэтому никакая форма не будет задействована, но пойдет по этому пути, так как я думаю, что это делает его намного более понятным. Я, вероятно, не был ясно, задавая вопрос. спасибо снова
  • 0
    Просто знайте, что вы можете использовать PoST со скрытым полем, и Rails поймет это как PUT

Ещё вопросы

Сообщество Overcoder
Наверх
Меню