【发布时间】:2021-06-13 18:42:09
【问题描述】:
我为一个简单的市场制作了一个 web 应用程序。我有三个不同的功能:搜索、过滤、按键过滤。这些函数中的每一个都包含不同的查询参数。我的问题是我应该如何以休息的方式分离这些端点?
例如,这是我的搜索端点:
API.get('/product/',{params:querydata})
在搜索时我得到这些查询参数:
{
skip: '0',
limit: '8',
searchTerm: '',
filters: '{"minPrice":1,"maxPrice":250000}'
}
但是当我使用过滤器功能时,查询参数会是这样的:
{
Color:'Red',
Type:'Car'
}
当我使用 keyfilter 功能时,我将拥有
{
filters:['red','black','bmw']
}
对此的正确方法是什么?在我使用 post 来区分过滤器和搜索之前,但现在我正在尝试转换为 rest api。提前致谢。
【问题讨论】:
-
有什么问题?如果您正在使用某些库(Angular、React)-它将从您的参数构建查询字符串。如果没有 - 您可能需要自己生成查询字符串。无论如何,它将是
/product/?skip=0&limit=8&minPrice=1...然后在服务器端,您必须理解参数,例如如何将'red','black','bmw'与 AND 和 OR 结合使用 -
您可以添加另一个参数,例如
type:'search',然后根据各种类型有不同的逻辑 -
@Felix 主要问题是我的查询参数是动态变化的,所以在我的服务器端我不知道如何引用该参数。但也许我理解错了,确实我将 React 与 Node.js/Express 后端一起使用,如果你能提供一些示例,我将不胜感激。 @charlietfl 这个类型可能是个好主意,我之前也这么认为。
-
查询参数是总是动态生成的——所以它本身不是问题。我的堆栈不同(Angular / .NET) - 所以我无法给出答案。但可能你需要修改这个问题。 “这是我的客户端 React 代码;这是我的服务器端 Express 代码;这就是问题所在”。因此,您的标签也会有所不同。
-
@MrNobody - 你的 Node/Express GET 路线是什么样的?
标签: javascript rest