【发布时间】:2017-10-05 14:57:13
【问题描述】:
我正在寻找在我的 Web Api 中进行路由的最佳方式。
目前我的路线是这样的:
[Route("api/branch/{branchId}/products")]
[Route("api/branch/{branchId}/clients")]
为了使用 api,我需要发送一个带有授权标头的令牌。该令牌将用户 branchId 作为声明。
使用我当前的设置,我需要将 branchId 提供给用户才能使用 api,但我不喜欢。
仅通过在此路由中使用令牌来实施解决方案的最佳方法是什么?
[Route("api/branch/products")]
我知道我可以使用 UserManager 提取每个控制器中的令牌值,但这将是很多重复代码
你有什么建议?
谢谢 阿尔贝托·洛佩兹
【问题讨论】:
-
调用您的 API 的客户端应该能够提供 branchId。客户端应该能够构建此路由。您的问题是您以某种方式认为 branchId 是私人信息,并且由于您说它是私人信息,而不是您的路线不能成为 {branchId} 部分
-
分支 ID 是否与被调用的操作相关?如果分支 id 用于识别客户端并且是授权标头的一部分(最终在用户声明中),那么 URL 中不需要它
标签: asp.net asp.net-web-api asp.net-core