API:带有user_id或name + region的GET请求

时间:2018-12-12 18:18:47

标签: rest api express request

在我的API中,我有一个GET / users /,它使我得到了users-collection中所有文档的数组。 而且我有一个GET / users /:user_id可以给我一个用户。 我还希望有一个GET /users/name.region可以让我一个用户。 这可能吗?

我是否必须使用GET / users / name =“ Joe”&region =“ US”之类的查询参数? 我将如何实施呢?在另一个端点中,还是有一种方法可以检查它是否是user_id或名称和区域的组合?

像这样吗?

if !req.params{
model.find({"name":query.params.name, "region": query.params.region})}
else
model.find({"user_id": req.params.user_id}) 

2 个答案:

答案 0 :(得分:0)

也许您可以使用相同的路线...

一个例子

const givenId = req.params.user_id;
const parts   = givenId.split('.');

if (parts.length === 2) {
    const name   = parts[0];
    const region = parts[1];
} else { 
    const userId = givenId;
}

答案 1 :(得分:0)

通常情况下,与GET users/:id不同的东西会破坏大多数流行的REST指南,例如Google's Resource Name specs

最好做一个GET users/search端点,该端点接受各种查询参数,例如nameregion并给出所需的用户查询。