在REST API,它被認爲是一個很好的做法來處理排序,篩選和使用URI查詢參數,如集合分頁:高級尋呼的REST API設計排序和過濾
GET /employees?offset=30&limit=15&name=Mary&sort=-surname
不幸的是,在一些「高級」情況下,參數的數量可能會「爆炸」,因此這種解決方案不再可能。
回到前面的例子,假設我們想在其他許多領域應用一些更復雜的過濾器(例如:地址包含「NY」,年齡> 30,年齡< = 40,(婚姻狀態是「已婚」和工資< 100000USD)或(婚姻狀況是「離婚」和工資> = 100000USD),和許多其他...)。
顯然,在這種情況下,一組簡單的查詢參數是不合適的。
如何這樣的情況應該設計?也許客戶端應該發送一個包含代表查詢的結構化數據的POST?關於如何設計此類查詢,是否有任何或多或少的標準協議?
謝謝!
您可以定義「高級」病例嗎?一般來說,你應該能夠量化參數,所以參數的數量不會「爆炸」。 – meyer9
將子句與布爾運算符結合使用(如示例中所示)可能會導致非常大的過濾器。這需要大量的查詢數據的另一個基本的例子可能是「中」操作符,如:名稱是(「瑪麗」,「JHON」,「卡爾」,...) –