我正在寻找使用宁静范例过滤múltiples项目的最佳做法。
我可以选择许多不同的选项,例如:
MotherBoard:华硕,芯片组:AMD970
MotherBoard:华硕,芯片组:AMD970,AMD990FX,Conectivity:蓝牙
Motherboard
Type
Asus
Gigabyte
MSI
Chipset
AMD760G
AMD 970
AMD 990FX
Conectivity
Bluetooth
WiFi
现在我有以下网址,但我不确定这个......
GET /api/v1/items?filters={"type":["Asus"]};{"chipset":["AMD 970"]}
GET /api/v1/items?filters={"type":["Asus"]};{"chipset":["AMD 970","AMD990FX"]}
GET /api/v1/items?type=<type>&chipset=<chipset>&conectivity<conectivity>
但是所有项目都可以是选项,并且取决于您选择的URL增加或减少的项目,所以如果有人可以帮助我,我将非常感激。
PD:我正在使用Java开发这个api问候!
答案 0 :(得分:0)
我喜欢RQL风格的方法。它在许多API实现上对我很有用。请参阅https://github.com/persvr/rql。
使用RQL可能看起来像:
GET / api / v1 / items?type =华硕&amp;或(eq(芯片组,'AMD'),eq(芯片组,'AMD990FX'))
我有一个Java RQL实现,它重载了查询字符串解析和可用函数。例如?type = Asus也可以写成?eq(类型,'华硕')。我还发现实现“in()”函数很有用,例如?eq(type,Asus)&amp; in(chipset,“AMD 970”,“AMD990FX”)。