[解決済み] REST - ボディにIDを入れるかどうか?
2022-06-04 08:36:18
質問
クライアントがIDを割り当てることができる、人々のためのRESTfulなリソースを持ちたいとします。
人物はこんな感じです。
{"id": <UUID>, "name": "Jimmy"}
さて、クライアントはこれをどのように保存(または "PUT")すべきでしょうか?
-
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}
- このように、常に検証しなければならない重複があります。body の ID は path の ID と一致するか? -
非対称な表現。
-
PUT /person/UUID {"name": "Jimmy"}
-
GET /person/UUID
リターン{"id": <UUID>, "name": "Jimmy"}
-
-
ボディにIDがない - ロケーションにのみIDがある。
-
PUT /person/UUID {"name": "Jimmy"}
-
GET /person/UUID
リターン{"name": "Jimmy"}
-
-
種類はありません
POST
は、IDがクライアントによって生成されるため、良いアイデアだと思われます。
よくあるパターンと解決方法は?位置情報のみのIDは、最も独断的に正しい方法のように思えますが、現実的な実装も難しくなってしまいます。
どのように解決するのか?
クライアントはあるリソース表現を書くことができ、その後、サーバーは追加/計算された要素を含む別の表現を返すことができます(あるいはまったく別の表現でもかまいません。)
ですから、私は(2)の非対称的な解決策を取り、書き込み時にサーバー側で"厄介な重複チェック"を避けることにします。
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID returns {"id": <UUID>, "name": "Jimmy"}
関連
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] SOAPとRESTの比較(相違点)
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] HTTP DELETE リクエストにエンティティボディは許されますか?
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み] RESTのネストされたリソースのベストプラクティスは何ですか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み】REST API - ファイル(画像)処理 - ベストプラクティス
-
[解決済み] NetflixやTwitterのようなWebサービスにはRESTとSOAPのどちらを使うべきか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] cURLでPUTリクエストを行うには?
-
[解決済み] cURLを使ってCookieを送信するには?
-
[解決済み] REST Web アプリケーションのページネーション
-
[解決済み] REST API 認証
-
[解決済み] オブジェクト内のアイテムの合計数を返すための最良のRESTfulメソッドは何ですか?
-
[解決済み] HTTP DELETEでリソースを2回目に削除したときのステータスコード
-
[解決済み] リソースとエンドポイントの違いは何ですか?
-
[解決済み] RESTとは?若干の混乱【終了
-
[解決済み] RESTを使った複数レコードの削除
-
[解決済み] NetflixやTwitterのようなWebサービスにはRESTとSOAPのどちらを使うべきか?[クローズド]