假設我的應用程序正在管理名爲工作負載的對象,並帶有以下字段。我想公開一個REST接口供用戶通過標籤查詢工作負載。什麼是使用過濾器查詢的REST式方法?
"Workload": {"id":"test1", "labels":["A", "B", "C"]}
"Workload": {"id":"test2", "labels":["A", "C", "D"]}
"Workload": {"id":"test3", "labels":["A", "B", "D"]}
問題:如何通過多個標籤設計REST端點,以便它支持的查詢工作作爲過濾器?
示例查詢1:我想要GET
所有的工作負載都是「A」和「B」。
我在想像GET
這樣的動詞,workloads
作爲端點,然後使用{"labels": ["A", "B"]}
作爲請求主體。但是這看起來並不像RESTful的方式去做事
或者,我可以做GET /labels/{label-id}/workloads
但這隻會在每次使用一個標籤時才起作用。
示例查詢2:我想GET
所有標籤「A」或「B」,但沒有「C」的工作負載
不知道如何做這樣的REST API的所有,其他要求用戶分別通過A,B,C查詢,然後自己進行適當的設置操作?
第二個查詢是tracked as another question
我不認爲查詢參數有任何問題。你有什麼理由想避免它們? – mrmcgreg
我一直懷疑我是否想要/可以重複查詢參數。當我在'golang'中編寫我的應用程序時,我正在使用[第三方庫'httprouter'](https://github.com/julienschmidt/httprouter)來幫助我自動解析參數,它目前僅支持單個查詢參數...像'工作量/:workload_id/labels /:label_id'這樣的東西# – cookieisaac