REST インターフェースの要件の 1 つは、各リソースが固有のフィールド (主要な識別子を除く) によって識別可能であることです。これは、データの一括インポートを処理できるようにしたいためです。この場合、クライアントはシステムが生成したプライマリ識別子を知ることができません。
これは、一意のフィールドでリソースを参照できる必要があることを意味します。主キーを使用すると、読み取りリクエストは次のようになります。
GET example.com/rest/customers/1
その顧客に関連する注文を取得する
GET example.com/rest/customers/1/orders
ここで、customer の 2 つのフィールド name ("foo") と businessId ("bar") で一意に識別されると仮定します。そのため、この顧客の注文を取得するために、次の URI を思い付きました。
GET example.com/someotherpath/customers/foo,bar/orders
しかし、これが一意のフィールドを介してアクセスされるリソースであることを識別するための別のパスがあるのは好きではありません。主キーの代わりに一意のフィールドを使用して、RESTful な方法で上記のクエリをどのように構成しますか?
さらに、注文は次のようになります。
{
<SNIP>
"orderId" : "42"
"_links": {
"customer": {
"href" : "rest/customers/1"
"key": [ "foo", "bar" ]
}
},
}
インターフェイスと通信するときに、クライアントが hrefまたはキーを交換可能に指定できるようにすることに関する問題はありますか?