2012-03-22 53 views
0

我想公開一個將複雜類型作爲in參數的WCF Rest方法(使用webHttpBinding)。從過去的經驗來看,我通常使用POST/WebInvoke來傳遞複雜的參數,即使該方法只返回數據而不插入/更新或修改任何內容。REST Get/PostStandards

我的問題是:使用POST方法,只返回數據,只是傳遞一個複雜的參數打破了REST「標準」,如果是的話還有其他的選擇。

注意:序列化param並使用WebGet/GET動詞將它傳遞給url不是可行的解決方案,因爲url大小和其他約束條件有限。

+0

我必須問你在做什麼,需要查詢這樣的「複雜」參數... – cHao 2012-03-22 13:23:45

+0

我必須從數據庫中返回一個對象列表,複雜參數是過濾器標準,可以是子類型,數組... – 2012-03-23 12:16:12

回答

0

是的。這不是真正的RESTful。

動詞也有意義。基本上,POST的意思是「在這個資源下添加一些東西」。如果你只是在做一個查詢,而不是添加到資源中,那麼你會濫用這個動詞。

現在,如果查詢太複雜以致於需要傳遞一堆東西來設置它......它可能是一個獨立的資源。你可以發送一個POST來創建查詢,給它一個URL,然後給你一個鏈接來查看查詢和/或其結果。