我正在設計一個RESTful API,我問自己關於過濾器字段的問題。REST字段過濾器使用
在我得到的查詢我希望用戶能夠選擇他想在響應中所獲取的字段。我非常肯定,這將是現場過濾器工作給我所要求的領域,但經過一番重新研究之後,我發現大部分時間它用來在領域添加標準,作爲IF。是用戶需要顯示還是隱藏字段?API每次都會返回完整的資源?
我還有一個關於這種過濾器的URI表示的問題。應該是/ foo?fields = [bar1,bar2]?
感謝
我正在設計一個RESTful API,我問自己關於過濾器字段的問題。REST字段過濾器使用
在我得到的查詢我希望用戶能夠選擇他想在響應中所獲取的字段。我非常肯定,這將是現場過濾器工作給我所要求的領域,但經過一番重新研究之後,我發現大部分時間它用來在領域添加標準,作爲IF。是用戶需要顯示還是隱藏字段?API每次都會返回完整的資源?
我還有一個關於這種過濾器的URI表示的問題。應該是/ foo?fields = [bar1,bar2]?
感謝
這不是常見的有資源,你可以指定哪些領域你想回來,默認情況下所有的領域將得到恢復。如果你的資源有很多字段,或者某些字段的值很大,那麼有一種方法可以指定你想返回的字段。
在REST中,沒有關於如何爲過濾器設計網址的嚴格規則。使用GET參數確實很常見,因爲它們可以是可選的,不必按任何特定的順序。你的建議/foo?fields=[bar1,bar2]
似乎很好,但我個人會離開括號。
谷歌Compute Engine的API使用 '域' 請求參數(見documentation)。語法足夠靈活,可以讓用戶選擇/限制嵌套元素。你可能會覺得它很有用。
Yoga是一個框架,允許您使用可選域部署自己的REST API的。這可以減少到服務器的往返次數,並提高性能。
感謝您的回答,我在想,過濾器,因爲我讀過那篇文章[鏈接] http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#limiting-fields [鏈接],我認爲這可能是有趣的,因爲我的一些資源將顯示在數據網格中。對於URI部分,您的解決方案似乎比我的更好,無需使用括號就可以更輕鬆地進行解析。 – Fougere
「如果您的資源有很多字段或某些字段的值很大,那麼有一種方法可以指定要返回的字段,這是個好主意。」在我的回答中添加了這個句子。 – rednaw