首页 > 解决方案 > API:带有 user_id 或 name+region 的 GET 请求

问题描述

在我的 API 中,我有一个 GET /users/,它为我提供了用户集合中所有文档的数组。我有一个 GET /users/:user_id 可以让我成为一个用户。我还想要一个 GET /users/name.region 来获得一个用户。这可能吗?

我是否必须使用 GET /users/name="Joe"®ion="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}) 

标签: restapiexpressrequest

解决方案


也许你可以用同样的路线来做......

一个例子

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;
}

推荐阅读