我需要用C#创建一个ASPNET Core API,我想知道创建控制器并为它们分配路由的最佳约定是什么。
我有一组关于 35 的目录,例如:
- 员工类型
- 位置
- 状态类型
- 地区
- 假日类型
- 休假类型
- 语言
- 国家
- 等。。。
另一方面,我必须公开用于保存内容的 API,就像更新患者信息等一样。
因此,一种方法是为目录本身创建35个不同的控制器,例如EmployeeTypeContoller
,LanguageController
,CountryController
,LeaveTypeController
等。
[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 令牌通常从用户和密码创建。