在我的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})
答案 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
端点,该端点接受各种查询参数,例如name
和region
并给出所需的用户查询。