我有一个帐户类,想要实现转移屏幕,以允许用户在两个帐户之间转账。
我如何以RESTfull方式实现这个?
我有标准帐户和休息操作,没关系。但是我如何实施转让?
通常我只是添加一个名为“transfer”的方法(调用渲染屏幕)和“transfer_update”(调用提交)到帐户控制器和相应的视图,但我不认为这是非常RESTfull。
感谢 乔尔
答案 0 :(得分:3)
您提到了您的帐户类,但没有提到代表帖子或日记帐的类。请参阅http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html(Archived)。
使用引用网站的语言,为转移创建的“资源”是日记帐(条目),由两个过帐组成,每个过帐到不同的帐户。所以你想要一个JournalsController。要添加传输,您将POST到JournalsController的索引操作。参数包括日期,金额,debit_account,credit_account,收款人,备忘录等。
在AccountsController上使用REST将用于创建,更新或删除帐户,而不是帐户包含的过帐(交易)。
答案 1 :(得分:3)
执行转移的宁静请求的示例。
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"
} }
答案 2 :(得分:1)
本书RESTful Web Services有一个很好的例子,说明如何处理这个确切的问题,更好的是,例子在Rails中:)
如果你不能从图书馆查看,那该怎么办,只需买一下。它并不昂贵,它有很多关于如何实现REST和ROA的有用信息。