問題中提到的方法實際上意味着對於ids
的每個組合都有一個資源。比方說,我們有2 ids
:1和2
/items/1,2
/items/2,1
上述代表不同的資源,雖然結果是一樣的。 這可能會讓API的使用者感到困惑。
模型化的另一種方法是通過查詢參數作爲過濾語義。 我們假設,id
實際上是資源的一個字段。
例如,獲取item
通過id
1:
GET
/items/1
Response:
{
"id": 1,
"type": "table",
"color": "black",
...
}
所以現在的問題是,如果我有什麼需要得到幾個項目作爲散裝? 您可以將此問題概括爲根據某些字段上的值過濾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
所以同樣的問題可以問得到items
其中id
是1
或2
。 比方說,我們在query
GET
/items?query="id=1||id=2"
Response:
{
"data": [
{
"id": 1,
"type": "table",
"color": "black",
...
},
{
"id": 2,
"type": "table",
"color": "grey",
...
}
]
}
語法什麼的RESTful約束你關心的或操作
||
模型? URI只是遵循RFC 3986中規定的規則的標識符。就我個人而言,使用逗號分隔值列表作爲URI標識符的一部分看起來沒有問題。 –