asp.net 核心 API 最佳实践控制器命名路由



我需要用C#创建一个ASPNET Core API,我想知道创建控制器并为它们分配路由的最佳约定是什么。

我有一组关于 35 的目录,例如:

  • 员工类型
  • 位置
  • 状态类型
  • 地区
  • 假日类型
  • 休假类型
  • 语言
  • 国家
  • 等。。。

另一方面,我必须公开用于保存内容的 API,就像更新患者信息等一样。

因此,一种方法是为目录本身创建35个不同的控制器,例如EmployeeTypeContollerLanguageControllerCountryControllerLeaveTypeController等。

[Route("api/[controller]")]
[ApiController]
public class [CatalogName]Controller: Controller

但我认为这是不对的,或者另一方面只是创建一个CatalogController并在其中包含有关每个目录的所有GET方法。

如果是这种情况,那么我需要在如下路径中公开所有这些:

/
  • api/catalog/language
  • /
  • api/catalog/country
  • /
  • api/catalog/employeetype
  • 等。。

我应该走什么路?

您可以指定Route属性并仅创建一个控制器。

参考:属性路由

我通常使用良好的 API 实践来构建应用程序。REST实际上可以被认为是一组原则,当在应用程序中正确应用时,Web本身的体系结构和标准使您受益。我建议为每个示例资源 CatalogController 创建一个控制器,并在类中为目录执行路由。对于应用程序来说,这是最佳和推荐的方法,如果您不想轻松公开任何 API,则必须通过路由创建身份验证。

确保数据安全也是API设计的一部分,今天社区使用的主要模型是Oauth 2.0,这是一个身份验证标准,旨在保护用户的敏感数据,我的建议始终是可以使用它,但是如果不可能,请不要在没有身份验证的情况下离开您的API, 至少使用基本类型身份验证,其中 base64 令牌通常从用户和密码创建。

最新更新