あなたの場合、私は /bulk リソースの方法にも行きます。しかし、私が提案するパターンは次のとおりであり、私の理解では最も自然なパターンです: 202 Accepted ステータス コードで作業します。
一括リクエストの考え方は、サーバーがすぐに応答することを強制されるべきではないということです。これは、クライアントが一括リクエストが完了するまで待機する必要があることを意味するためです。
パターンは次のとおりです。
POST /bulk [{"name": "Books"}, {"name": "Games"}]
202 Accepted | Location: /bulk/processing/status/resourceId
GET /bulk/processing/status/resourceId
entry = "REST in peace" | completed | 0 errors | /categories/category/resourceId
entry = "Walking dead" | processing | 0 errors ->
そのため、クライアントは大量の情報をサーバーに POST します。サーバーは、応答時の処理状態について保証しない 202 でそれらを受け入れるだけです。ただし、サーバーはステータス リソースへのリンクも提供します。ここでクライアントは、作成された各リソースと処理状態を確認できます。完了すると、クライアントは指定されたリンクを介してリソースにアクセスできます。エラー ケースはクライアントによって識別でき、エラー データは完了したリソースの PUT によって再送信される可能性があります。
最後に、私が通常従う良いアドバイスは次のとおりです。HTTP 機能にマップできないリソースを設計でヒットするときはいつでも、おそらくリソースの欠落が原因です。