質問で述べられているアプローチは、実際には、の組み合わせごとにids
リソースがあることを意味します。ids
2 : 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",
...
}
]
}