1

Я собрал приложение RoR и теперь хотел бы опубликовать веб-службу RESTful для взаимодействия с моим приложением.Проектирование веб-сервиса с использованием Ruby on Rails - сопоставление моделей ActiveRecord

Я не уверен, куда идти, я не хочу просто выставлять свои модели ActiveRecord, так как есть некоторые данные по каждой модели, которая не нужна или не должна отображаться через API, подобный этому. Я также не хочу создавать SOAP-решение.

Мое приложение построено с использованием Rails 2.3.5, и я надеюсь перейти на Rails 3.0 вскоре после его выпуска.

Я в основном ищу способ сопоставить модели ActiveRecord с «моделями», которые будут отображаться через веб-службу. Является ли ActiveResource правильной вещью? Что относительно ActionWebService?

ответ

3

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

Я уверен, что есть более сложные способы сделать это, но это простой подход.

+0

Нельзя также переопределить #as_json в своих моделях, чтобы определить, какие значения вы будете подвергать действию и какие преобразования вы хотите применить. Подробнее об использовании #as_json vs #to_json см. Http://stackoverflow.com/questions/2572284/override-to-json-in-rails-2-3-5/2574900#2574900. –

+0

Считается ли «лучше» переопределять методы to_json и to_xml для каждой модели? Я думаю, что то, что я пытаюсь выполнить, - это то, что будет долговечным в обслуживании, не опуская мои модели. –