Ruby on Rails REST вопрос дизайна - перевод денег между счетами - PullRequest
3 голосов
/ 08 декабря 2010

У меня есть класс Account, хочу реализовать экраны перевода, чтобы пользователь мог переводить деньги между двумя счетами.

Как бы я реализовал этот ins RESTfull?

У меня есть стандартная учетная запись и остальные действия для этого, это хорошо. Но как я могу осуществить перевод?

Обычно я просто добавляю метод с названием «передача» (вызывается для визуализации экрана) и «передача_update» (вызывается при отправке) в контроллер учетных записей и соответствующие представления, но я не думаю, что это очень RESTfull.

спасибо Joel

Ответы [ 3 ]

3 голосов
/ 08 декабря 2010

Вы упоминаете свой класс Учетной записи, но не класс, представляющий публикации или журналы. См. http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html ( В архиве ).

Используя язык ссылочного сайта, «ресурс», который создается для передачи, - это журнал (запись), состоящий из двух публикаций, каждая для разных учетных записей. Так что вы бы хотели JournalsController. Чтобы добавить перевод, вы должны добавить POST к действию index в JournalsController. Параметры будут включать дату, сумму, debit_account, credit_account, получателя платежа, авизо и т. Д.

Использование REST на AccountsController предназначено для создания, обновления или удаления учетных записей, а не проводок (транзакций), которые содержатся в учетных записях.

3 голосов
/ 10 декабря 2010

Пример спокойного запроса на выполнение перевода.

POST /transfers HTTP/1.1
Host: restful.bank.com
Content-Type: application/json; charset=utf-8
Accept: application/json

{ "transfer": {
  "source_account_id": "9d2d894c242f391a",
  "destination_account_id": "83ac039d8302abd5"
  "amount": "$200.00"
} }

Соответствующий ответ.

HTTP/1.1 201 Created
Date: #{right-now}
Content-Type: application/json; charset=utf-8
Location: https://restful.bank.com/transfers/938ac39cb5ddccfa

{ "transfer": {
  "id": "938ac39cb5ddccfa",
  "href": "https://restful.bank.com/transfers/938ac39cb5ddccfa",
  "source_account_id": "9d2d894c242f391a",
  "destination_account_id": "83ac039d8302abd5"
  "amount": "$200.00"
} }
1 голос
/ 08 декабря 2010

Книга RESTful Web Services содержит хороший пример того, как решить эту проблему, и что лучше, пример в Rails:)

Если вы не можете проверить это из библиотеки, какого черта, просто купите вещь. Это не так дорого, и у него есть много полезной информации о том, как реализовать REST и ROA.

...