0

我目前正在为我的下一个 Web 应用程序在 node.js 和 express.js 上构建一个 rest api。我正在构建一个多租户 SAAS 应用程序,我只是想知道根据 REST API 标准(如果还存在这样的东西)的最佳或“最可接受”的方式,以便如果用户调用 api说:

/api/用户

这不是拉数据库(mongodb)中的每个用户,而是拉特定用户公司成员。

我可以调用:api/users/?companyId=1,但我不禁认为必须有更好的方法。也许将公司 ID 与每个 api 调用一起作为某种标题传递?

对此的任何想法将不胜感激。

4

2 回答 2

0

如果您对每个公司都有一个唯一的标识名称或“代码”,则可以有一个以公司代码作为 url 基础的多租户 api:

https://companycode.myapi.com/v1/users

您还可以将其扩展到不同的环境:

https://companycode.staging.myapi.com/v1/users

于 2014-09-18T03:08:20.893 回答
0

您可以强制您的用户进行身份验证并将他们的帐户与公司关联。通过请求管道中的中间件,您将在他们登录后授予请求对象对其用户帐户的访问权限,您可以使用它来过滤查询结果。

api.get('/v1/users', function(req, res) { 
  console.log(req.user); 
  //create a service that gets users for user(companyUser) 
  //mongooseModel.find({}).where(req.user._id.toString()
}
于 2016-08-03T12:09:44.530 回答