2016-06-20 31 views
0

我在寫一個RESTfull服務,使用PHP,我想知道哪種方法類型最適合獲取表格數據,使用過濾器?REST滿服務 - 什麼類型的過濾器獲取信息?

我想按照這個規格: http://www.restapitutorial.com/lessons/httpmethods.html

GET似乎是最明顯的,但如果我有濾波器參數,建立這樣的:

{filter: [{'field': 'name', 'type': 'contains', 'value': 'ABC'},{....},{...}}

,我可以作爲JSON負載輕鬆發送POST。

那麼我應該使用GET,POST還是其他?

+0

由REST最嚴格的定義,我會說你應該使用GET,但沒有什麼阻止你發送表單數據的GET請求的身體或期待表單數據的GET請求 – bassxzero

+0

你的意思是發送它作爲有效載荷?我不認爲這是可能的..(不是URL)如果URL,那麼我該如何解析這個'filter'對象? – Amit

回答

0

我會說你應該使用GET方法獲取表的數據。

HTTP GET方法用於檢索(或讀取)資源的表示形式。

Examples: 
GET http://www.example.com/customers/12345 
GET http://www.example.com/customers/12345/orders 
GET http://www.example.com/buckets/sample 

根據HTTP說明書的設計,GET(連同HEAD)請求僅用於 讀取數據和不能改變它。因此,以這種方式使用時,它們被認爲是安全的。也就是說,他們可以調用 而沒有數據修改或腐敗的風險 - 調用它與調用10次具有相同的效果,或者根本沒有。此外,GET(和HEAD)是冪等的,這意味着使多個相同的請求最終產生與單個請求相同的結果。

注意:不要通過GET暴露不安全的操作 - 它不應該修改服務器上的任何資源。

+0

是的,我明白爲什麼以及在哪裏使用GET,但對於我的具體情況,我如何使用GET發送它?有效載荷是幾個參數的對象數組 – Amit

+0

GET --- GET是最簡單的HTTP請求方法類型;每次您點擊鏈接或在地址欄中輸入網址時瀏覽器使用的瀏覽器。它指示服務器將URL標識的數據傳輸給客戶端。由於GET請求,數據不應在服務器端進行修改。從這個意義上說,GET請求是隻讀的,但是當然,一旦客戶端接收到數據,就可以自由地對它進行任何操作 - 例如格式化它以顯示。 – charan

+0

我明白了。但是,如何將結構化數據解析爲稍後可以使用的字符串?作爲一項規則? – Amit