2013-05-28 14 views
1

我正在幫助構建文件的相似搜索服務。搜索某個東西的一種方法是通過提供文件的URL來獲取GET請求,但我也需要允許客戶端直接發送文件。我必須做以下選擇:休息服務中基於文件的搜索的最佳做法

  1. 使客戶端發送帶有效載荷的GET請求;這似乎不推薦 - HTTP GET with request body

  2. 使用別的不是GET(也許是PUT?)進行基於文件的搜索。問題是沒有其他的HTTP方法似乎適合這個目的。

什麼樣的選擇最適合這裏?我不是這方面的專家,我無法弄清楚在這種情況下做什麼是正確的。

+0

我認爲這將有助於:http://stackoverflow.com/questions/15262965/send-file-as-a-parameter-to-a-rest-service-from-a-client – Woot4Moo

回答

1

這是我一直遵循的REST規則。

GET - 僅查詢數據並返回數據集。 POST - 在數據庫中創建數據 PUT - 修改數據 DELETE - 銷燬數據庫中的數據。

如果您要爲搜索參數發送有效內容,則可以執行GET並將這些參數(假設它們是名稱/值對)放入URI的查詢字符串中。

http://my.simsearch.com?param1=first&param2=second ...

如果你是真正意義上改變數據庫然後POST或PUT是爲了。

我希望這會有所幫助。

+0

是的,我完全同意與你,但在我的情況下,有效載荷是一個二進制文件,所以我不能真正把它放在URL中。感謝您的幫助,雖然 –

+0

是的,我看到這將是一個問題在URL中。在這種情況下,我的方法(可能不是最佳實踐)將是PUT,即使它不一定適合REST範例,它將完成工作。 – tadpreston

0

我最終發送一個GET請求的有效載荷。儘管這不是真的推薦,但希望沒有圖書館會抱怨這一點。