13

フィールド「id」と「name」を持つ単純な「Person」テーブルを含む JAX-RS API を開発しています。「id」は mysql データベースの自動番号に関連付けられています。典型的な使用例は、新しい人を POST することです。

JSON メッセージの POST は、{"name":"Bob"}たとえば、{"id":101,"name":"Bob"}.

発信者が識別子を含むオブジェクトの POST を要求した場合はどうなるでしょうか? 私のオプションは次のとおりです。

  • リクエストを無効として拒否する
  • リクエストから ID を削除し、処理を続行します
  • POST を UPSERT のように扱う (更新が失敗した場合、ID を削除して挿入する)
  • 提供された ID を使用して新しいレコードの作成を試みます

最後のオプションは、セキュリティの観点から危険に思えます。mysql を使用している場合、悪意のあるユーザーが 1 回のリクエストで自動番号を最大値まで上げることができます。

POST リクエストに ID を含めることは、REST API でどのように処理する必要がありますか?

4

3 に答える 3