2010-12-08 13 views
3

私は口座クラスを持っていますが、ユーザーが2つの口座間でお金を振り替えることができるように振込画面を実装したいと考えています。Ruby on Rails RESTデザインの質問 - 口座間の振込

どのようにこの機能をRESTfullで実装しますか?

私は標準的なアカウントと休憩のアクションを持っています。しかし、どのように私は移転を実装するのですか?

通常、私は単に "transfer"(画面をレンダリングするために呼び出される)メソッドと "transfer_update"(submit時に呼び出される)メソッドをアカウントコントローラと対応するビューに追加するだけですが、これは非常にRESTfullだとは思わない。 ジョエル

答えて

3

あなたのアカウントクラスは言及していますが、投稿や雑誌を表すクラスはありません。 http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.htmlArchived)を参照してください。

参照サイトの言語を使用して、転送用に作成される「リソース」は、それぞれ異なるアカウントへの2つの投稿からなるジャーナル(エントリ)です。だからあなたはJournalsControllerが欲しいでしょう。転送を追加するには、JournalsControllerのインデックスアクションにPOSTします。パラメータはアカウントではなく、アカウントに含まれる転記(トランザクション)を作成、更新、または削除するためであろうAccountsControllerにRESTを使用して等

日付、量、debit_account、credit_account、支払先、メモを含むであろう。

1

ブックRESTful Web Servicesはこの正確な問題にアプローチする方法の良い例があり、どのような方が良いでしょう

おかげで、例はRailsのである:)

あなたからそれをチェックアウトすることができない場合図書館、一体何、ちょうど物を買う。これは高価ではなく、RESTとROAを実装する方法についての多くの有益な情報があります。

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" 
} } 
+0

しかし、ここでは「転送」という動詞が使用されていますが、それはRESTではないという印ではありませんか? – jhegedus

+1

@jhegedus "転送"という単語は、ここでは動詞ではなく名詞として使用されます。 – yfeldblum