WebAPI和OData8与Swagger中的Controller名称冲突

cetgtptt  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(60)

我有一个问题,这似乎是共同的,从我所研究的控制器名称冲突和问题与 Swagger 。
如果我在Controller 1中有两个Get()函数,在Controller 2中有两个Get()函数,我会收到错误:
正在删除操作的方法/路径组合“GET {id}”

注意事项:

  • 只有在我的控制器中直接调用ODataController时才会出现此错误,如下所示:
public class OrdersController : ODataController

字符串

  • 此错误不会出现如果我这样做
public class OrdersController : BaseApiController
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OData.Routing.Controllers;

namespace API.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class BaseApiController : ODataController
    {
        
    }
}

的数据
我现在遇到的主要问题是Swagger显示两组端点:
一个用于我所有的/api/<controller>端点以及/odata/<controller>(重复),我只想要odata的,但如果我删除路由错误将再次发生。

9ceoxa92

9ceoxa921#

一个用于我所有的/API/ endpoints以及/odata/(重复),我只想要odata的。但是如果我删除路由,错误将再次发生
删除[ApiController][Route("api/[controller]")]
下面是本文档中的OData控制器示例

相关问题