API RestFul - 多个过滤器

时间:2017-05-31 13:09:12

标签: spring rest http

我正在寻找使用宁静范例过滤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

问候!

1 个答案:

答案 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”)。