2012-01-20 98 views
0

我正在創建一個REST API。可以說我服務的資源被稱爲object,它包含許多屬性。REST API參數優先

除了要求整個組對象的這樣

GET api.example.com/objects

我想允許通過提供請求單個對象要麼objectidobjectname, 這樣

GET api.example.com/objects?objectid=
GET api.example.com/objects?objectname=

我很困惑的是,我應該如何處理這樣的請求?

GET api.example.com/objects?objectid=x&objectname=y

在這種情況下,我應該返回一個400 Bad Request,還是應該的參數之一優先於其他? REST如何定義這種行爲?

回答

3

REST通常假定有一個資源的唯一URL,所以這將是:

GET api.example.com/objects/objectId 

參數通常用於搜索,所以你會碰到這樣的:

GET api.example.com/objects?objectName=x 
+0

如果有多個搜索參數,它們是否被認爲是AND或OR? – xbonez

+1

我不知道什麼REST建議是,但我通常使用AND爲不同的參數和OR爲單參數的列表參數,所以type = 2,3和parent = 10將代表(parent = 10 AND(type = 2 OR類型= 3) – xpapad

1

一更好的方法是使用參數字符串中的通用鍵來檢索特定資源的字段值

GET api.example.com/objects/objectId?field=objectName,anotherField 

它補充了xpapad的建議,並且可以添加可擴展的結構,以便如何爲API設計定義一致的方法。