うまくいった証
207 は「いっぺんにいくつものことを頼まれたから、それぞれの結果を一覧にして返すよ」という応答です。 プールに例えると、5人がそれぞれ違うタイムで完走したあと、コーチが「Aさんはタイム合格、Bさんはあと0.5秒、Cさんは合格…」と一覧表で結果を返してくれる——あの一括報告の便利さです。
WebDAV (RFC 4918) で定義されているコードで、レスポンス本文には XML で各リソースのステータス (200/404/403 など) が並びます。一般的な REST API ではあまり使いませんが、一括処理 API を設計するときの参考になる思想です。
プールからのひとこと
プールでの記録会のあと、コーチが選手それぞれの結果を1枚の用紙にまとめて配ることがあります。「全員一律 OK」ではなく、誰がどの結果だったかを並べて見せる。一覧でぱっと見渡せるから、次の練習計画も立てやすい。
207 もそれと同じ構造で、「全体としては受け付けたが、中身は項目ごとに違う」という現実を、ひとつの応答に丁寧に詰めて返してくれる。WebDAV の世界に最適化された、まとめ役のステータスです。
次への一歩
ここから先:
- XML 本文を解析して各リソースの状態を確認:それぞれの code を見て成功/失敗を判定
- 失敗した項目だけを再試行:成功した分は再度送らない設計に
- クライアントへ結果サマリを表示:「N件中M件成功」のようにユーザー向けに整理
- REST API で似た構造を作るときの参考に (管理者向け):複数リソース一括処理は応答の設計が肝
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 207 Multi-Status
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>207 Multi-Status</h1></body></html>