0

SMSサブスクリプションを管理するためのRailsベースのAPIを作成しています。そのsubscriptionsコントローラーrespond_to :html, :json, :xmlSubscriptionモデルがあります。どちらも正常に動作しています。

サブスクリプションを作成する場合でも、ユーザーは自分の携帯電話に送信されたページにPINを入力してサブスクリプションを確認する必要があるため、それconfirmsを管理するコントローラーを考えています。

これを実装する方法についていくつか質問があります。

(1)サブスクリプションが行われた後の正しいアプローチまたはベストプラクティスは何でしょうか。作成されたサブスクリプションオブジェクト(作成方法に応じてhtml、json、またはxml)を表示し、確認コントローラーを個別のアクションとして管理しますか、それとも代わりに確認コントローラーにリダイレクトする必要がありますか?

APIはjsonとXMLに応答するので、他のページ/コントローラーにリダイレクトするのは良い考えではなく、作成されたオブジェクトを表示する方がよいと思いますか?

(2)この場合、私はCanCanを使用して役割能力を管理しています。Userサブスクリプションは認証を行う必要のない所有者(開発者)に属しているため(指定さPOSTれたキーワード/ショートコードの組み合わせにより、誰のユーザー所有者が関連付けられているかを知っています)、サブスクリプションは任意のサーファーが作成できます(必要ありません)作成前の認証用)作成したオブジェクトをそのサーファーだけに制限するにはどうすればよいですか?

Userログインしていると、オーナーなのでオブジェクトを見せるのが簡単になると思いますが、オブジェクトを作成して認証する必要のない通常のサーファーはどうでしょうか。

サーファーをオブジェクトに接続して、その機能を制限する方法がありません。

(3)通常のサーファーに作成された後にオブジェクトを表示するのは良い考えですか?開発者がAPI自体からjsonを介してそれを行っている場合、それは適切ではないと思うかもしれません。

サブスクリプションモデルは非常にシンプルで、次のように機能します

$ curl http://mysite.com/subscriptions \
-d shortcode=7889 \
-d keyword=KEYWORD \
-d phone=6895874587 \
-d country=us \
4

1 に答える 1

1

一つずつ攻撃してみよう:)

  1. レコードが作成された後、ステータスコードでサポートされている場合はオブジェクトを返すことをお勧めします。つまり、レコードが作成された場合は、200のステータスコードとともにオブジェクトを返す必要があります。一部のステータスコードでは本文が許可されていないことに注意してください。つまり、201です。通常、最近のほとんどのhttpクライアントはリダイレクトをサポートしていますが、それでも2つの別々のアクションで保持します。

  2. 一般に、あるユーザーが別のユーザーに代わって投稿するのを防ぎたいので、ユーザーを認証することは依然として良い考えです。パラメータを分析してユーザーが誰であるかを判断できるかどうかに関係なく、サブスクリプションをそれに関連付けることができます。例:

    @ user = User.find_by_phone(params [:phone])@subscribtion = @ user.subscribtions.build(params)

  3. はい、一般的には保存されたものを返却することをお勧めします。

于 2012-06-04T19:58:09.063 に答える