0

次のシナリオを考えてみましょう。

RESTPUT呼び出しを介して車オブジェクトのManufacturerフィールドを更新したいと思います。送信する必要のあるデータは次のようになります。

{
  "Id": "1000000251"
  "Manufacturer": "Honda"
}

ここで重要なのは、Manufacturerフィールドの値が、データベースに格納されている選択肢のセットリストから取得されることです。また、クライアントに有効なメーカーのリストを取得できるようにする別のGET呼び出しを提供します。ユーザーが値「Honnnda」を指定すると、検証エラーが返されます。

データベースでは、次の選択肢があります。

1 Honda
2 Toyota
3 Ford

それぞれの内部一意IDを強制的に認識させて(より安全に)、JSONオブジェクトにManufacturerIdフィールドを含めることをお勧めしますか、それともテキスト値を介してフィールドを更新できるようにすることはできますか?両方のシナリオで入力を検証します。また、PUTリクエストを送信する前に、利用可能なメーカーのリストを取得する必要があります。

編集-ユーザーは、PUT呼び出しを行う前に、利用可能なメーカーのリストを取得する必要があります。これは、ユーザーが行うことができる有効な選択を事前に知る必要があるためです。私は「より具体的な」例として車を使用しましたが、私のシステムは実際には車を扱いません。

4

1 に答える 1

1

RESTは、このテーマについてはあまり語っていません。ただし、一般的にRESTは、URIを識別子として使用することを好むため、送信する必要があると主張する可能性があります。

{
  "Id": "1000000251"
  "Manufacturer": "http://myapi.com/manufacturers/1"
}

しかし、私はそれが必要であるとは確信していません。表現で識別子を使用すると表現が作成されると主張するRESTコミュニティのセグメントがあります。これはself-descriptive、ユーザーエージェントが識別子を取得してから使用するまでの間にその識別子の意味が変わる可能性があるためではありません。個人的にはそれも買わない。

汗をかかないで。シナリオに最適な方法を実行してください。

于 2013-03-25T14:54:45.060 に答える