如何将根端点映射到 ASP.NET Core 控制器?

How to map root endpoint to an ASP.NET Core controller?

提问人:RAM 提问时间:5/15/2019 更新时间:10/18/2021 访问量:4000

问:

我正在设计一个具有 ASP.NET Core 的 REST API,我想处理由专用控制器发送到根端点的所有请求。由于将如何部署实现 API 的服务,对根端点的请求将被路由到服务器的根端点(即 https://localhost/)

AFAICT,Microsoft 关于如何创建 Web API 的教程仅涵盖 API 没有根终结点的用例,并且所有资源都由与路由共享相同名称的单个控制器整齐地表示。在此方案中,路由以开发人员友好的方式处理,方法是使用 注释控制器类,从而创建共享控制器类名称的路由。但是,根终结点没有名称,因此它错过了符合此策略的关键设计要求。[Route("api/[controller]")]

到目前为止,我一直在使用一个名为 的类,它装饰有 ,我不相信这是最好的设计方法。HomeController[Route("")]

那么,有谁知道将 API 的根端点映射到 ASP.NET Core 项目中的控制器的最佳策略是什么?

rest asp.net-core-routing

评论

3赞 Chris Pratt 5/15/2019
好吧,你不需要使用 ,但你确实需要在你想要作为基础的任何控制器上。这就是路由框架知道将请求路由到哪里的方式,因此它是完全可以接受的。HomeController[Route("")]

答:

4赞 dunwan 10/18/2021 #1

对我有用的是在端点上设置 [Route(“/”)],因为控制器设置为 [Route(“api/[controller]”)]