2011-12-13 9 views
9

サービスサイドのイベントをトリガする呼び出しをAPIに必要とする状況があり、クライアントからの情報(認証以外のもの)が必要なく、返される必要はありませんサーバーによって。これは標準のCRUD /リソースのやりとりにはうまく適合しないので、私はこれを私が間違っていることを示す指標にするか、これらの条件に対処するためのRESTfulな設計パターンがありますか?サーバーサイドのイベントをトリガするRESTfulな方法

答えて

0

RESTは、クライアントとサーバー間の通信の性質を定義します。この場合、問題は転送する情報がないと思います。

クライアントがこれをまったく開始する必要がある理由はありますか?私はあなたのサーバー側のイベントが完全にサーバー内に含まれるべきだと思います。多分cronコールで定期的にそれを蹴るでしょうか?

+2

転送する情報がないということは、クライアントが通話を開始できないことを意味しません。サーバー側の仮想マシンリソースに対する「再起動」トリガーについて考えてみましょう。そういうもの。 – RayLuo

9

あなたのクライアントができるだけ:サーバが202 Acceptedで応答と思われるために

POST /trigger 

クライアントにエンティティを提供する必要がある場合や、イベントステータスを照会する方法に関する情報を返す必要がある場合は、リクエストに適切な認証ヘッダーが含まれていて、将来APIを拡張できます。

ここで何をしようとしているのかについて「非RESTful」なものは何もありません。 RESTの原則は、リソースに対するCRUD操作に関連付ける必要はありません。


spec for 202は言う:

エンティティがこのレスポンスを返さ 要求の現在の状態の表示とステータスモニタ へのポインタまたはユーザーができるいくつかの見積もりの​​いずれかを含むべきですリクエストは となります。

定義に「SHOULD」が指定されている場合は、応答に何も送信する義務はありません。

関連する問題