質問で述べられているアプローチは、実際には、の組み合わせごとにidsリソースがあることを意味します。ids2 : 1 と 2があるとしましょう。
/items/1,2
/items/2,1
上記は異なるリソースを表していますが、結果は同じです。これは、API の利用者にとって混乱を招く可能性があります。
これをモデル化する別の方法は、フィルタリング セマンティクスとしてクエリ パラメータを使用することです。idが実際にはリソースのフィールドであると仮定しましょう。
item例、1ずつ取得id:
GET
/items/1
Response:
{
"id": 1,
"type": "table",
"color": "black",
...
}
問題は、複数のアイテムをまとめて入手する必要がある場合はどうすればよいかということです。itemsこの質問は、特定のフィールドの値によるフィルタリングの一般的な質問に一般化できます。items例:型テーブルのすべてを取得する
GET
/items?query="name='table'"
Response:
{
"data": [
{
"id": 1,
"type": "table",
"color": "black",
...
},
{
"id": 2,
"type": "table",
"color": "grey",
...
},
{
"id": 6,
"type": "table",
"color": "brown",
...
}
]
}
itemsそのため、 がどこにidある1かを取得するために同じ質問をすることができます2。or演算を次||の構文のようにモデル化するとします。query
GET
/items?query="id=1||id=2"
Response:
{
"data": [
{
"id": 1,
"type": "table",
"color": "black",
...
},
{
"id": 2,
"type": "table",
"color": "grey",
...
}
]
}