无法使用 ODATA 控制器加载 Swagger API 文档

问题描述 投票:0回答:1

我们正在尝试使用 OData 和 NSwag 生成 swagger UI,但最终遇到了很多问题。
我们使用 OData 控制器而不是 ControllerBase

启动文件配置

services.AddOData(); services.AddSwaggerDocument();

启动配置方法

app.UseMvc(builder =>
{
builder.Select().Filter().Expand().MaxTop(1000).Count();
builder.MapODataServiceRoute("ODataRoutes", "api/v1", GetEdmModel(app.ApplicationServices));
builder.EnableDependencyInjection();
});
app.UseSwagger();
app.UseSwaggerUi3();

我们使用继承 ODataController 的值控制器

[Route("api/[controller]")]
[ApiController]

public class ValuesController : Microsoft.AspNet.OData.ODataController
{
    // GET api/values
    [HttpGet]
    public ActionResult<IEnumerable<string>> Get()
    {
        return new string[] { "value1", "value2" };

    // GET api/values/5
    [HttpGet("{id}")]
    public ActionResult<string> Get(int id)
    {
        return "value";
    }

    // POST api/values
    [HttpPost]
    public void Post([FromBody] string value)
    {
    }

    // PUT api/values/5
    [HttpPut("{id}")]
    public void Put(int id, [FromBody] string value)
    {
    }

    // DELETE api/values/5
    [HttpDelete("{id}")]
    public void Delete(int id)
    {
    }
}

我们收到类似“ /swagger/{documentName}/swagger.json”的错误
我们是不是错过了什么?

.net-core swagger documentation swagger-ui nswag
1个回答
0
投票

我们错过了端点路由。

 services.AddMvc(options => { options.EnableEndpointRouting = false; }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
© www.soinside.com 2019 - 2024. All rights reserved.