非同期な処理をRESTで記述するには [コンピュータ]
非同期処理をRESTで記述するのは、非常に簡単なのですね。 RESTful Webサービスの書籍を読んでいて目からうろこが落ちるような思いでした。
ポイントは、非同期処理の状態を1リソースとして考え、新たにリソースを作成すればよいということです。
処理の流れの概要は次のとおりです。
RESTfulは、同期型のHTTPを使って、非同期処理やバッチ処理をうまく表現できるのがすばらしいねぇ。
ポイントは、非同期処理の状態を1リソースとして考え、新たにリソースを作成すればよいということです。
処理の流れの概要は次のとおりです。
- 非同期処理を開始するため、POSTリクエストを送信
POST /message_queue HTTP/1.1 Host: example.com
- レスポンスを受信します。レスポンスコードの202も重要です。非同期処理を1リソースとし、Locationヘッダに非同期処理のリソースのURIを返却
HTTP/1.1 202 Accepted Location: http://example.com/message_queue/1234
- 非同期処理中のリソースの状態を取得するため、GETリクエストを送信
GET /message_queue/1234 HTTP/1.1
- レスポンスを受信する
HTTP/1.1 200 OK <status>completed</status>
- 非同期処理が完了すれば、リソースを破棄します。 リソースの破棄は、サーバが自発的にexpireしても、クライアントからDELETEメソッドを送信してもOKです。
RESTfulは、同期型のHTTPを使って、非同期処理やバッチ処理をうまく表現できるのがすばらしいねぇ。
コメント 0