202 Accepted リクエストが受理されたが未処理であることを示すHTTPステータスコード

スポンサーリンク
スポンサーリンク

202 Acceptedについて

202 Acceptedの概要

リクエストが受理されたが未処理であることを示すHTTPステータスコード

202 Accepted

概要 202 Acceptedは、クライアントのリクエストが受理されたものの、その処理がまだ完了していないことを示すHTTPステータスコードです。このコードは、非同期処理を伴うリクエストに対するレスポンスとしてよく使用され、リクエストが成功したことを即時に通知しつつ、最終的な結果が確定していない状況を表します。

意味 クライアントのリクエストが受理されましたが、処理はまだ完了していません。

202 Acceptedはどのような時に返されるか

  • 非同期処理を伴うリクエストを受理した場合
  • リクエストの処理が時間を要する場合
  • APIやジョブキューでリクエストをキューに登録した場合

202 Acceptedの具体例

非同期APIのジョブ受付

POST /api/process-job HTTP/1.1  
Host: example.com  
Content-Type: application/json  

{ "task": "generate-report", "parameters": { "type": "monthly" } }  

レスポンス例:

HTTP/1.1 202 Accepted  
Content-Type: application/json  

{ 
  "message": "Your request has been accepted and is being processed.", 
  "jobId": "12345" 
}

解説: クライアントがジョブの処理をリクエストし、サーバーがそのリクエストを受け入れたものの、処理がまだ完了していない場合に202ステータスコードを返します。クライアントは後でジョブのステータスを確認できます。

長時間の処理が必要な場合

POST /api/long-running-task HTTP/1.1  
Host: example.com  
Content-Type: application/json  

{ "action": "data-migration" }  

レスポンス例:

HTTP/1.1 202 Accepted  
Content-Type: application/json  

{ 
  "message": "The request has been accepted for processing.", 
  "statusEndpoint": "/api/task-status/67890" 
}

解説: サーバーが処理を開始するのに時間がかかる場合、リクエストを受理したことを202ステータスコードで即座に通知し、処理の進行状況を確認できるエンドポイントを提供します。

注意点

202 Acceptedを返す際の注意点:

  • 処理結果の確認方法を提供
    非同期処理の場合、ジョブステータスや結果を確認するためのエンドポイントを明示することが重要です。
  • リクエスト受理の明確な通知
    クライアントにリクエストが正しく受理されたことを分かりやすく伝えるレスポンスを用意してください。

関連するHTTPステータスコードとの比較

202 Acceptedと関連性のあるステータスコードについて解説します。

  • 200 OK: リクエストが成功し、処理結果が即座に返される場合に使用されます。
  • 201 Created: 新しいリソースが作成された場合に使用されます。

これらの違いを理解することで、適切な用途で202ステータスコードを利用できます。