【问题标题】:How to get current use openapi version in code C# .net 5如何在代码 C# .net 5 中获取当前使用的 openapi 版本
【发布时间】:2021-11-01 21:25:00
【问题描述】:

如何通过代码获取“openapi”版本,将其放入自己的控制器响应中?

当你打印 openapi 生成的 JSON 时,它以

开头
{
"openapi": "3.0.1",
"info": {
...
}

我想将值“3.0.1”作为字符串。有没有办法像依赖注入或类似的东西将它访问到控制器中?

例子:

[ApiController]
[Route("api/my-app/openapi-version")]
public class OpenApiVersionController: ControllerBase
    private IOptions<Configuration> Configuration;
    // Use DI to access to my own configuration
    public OpenApiVersionController(IOptions<Configuration> configuration)
    {
        this.Configuration = configuration;
    }

    [HttpGet, Route("")]
    public ActionResult<OpenApiVersion> GetOpenApiVersion()
    {
        string version = // What should I write here ?
        Ok(new OpenApiVersion(version));
    }
}

我将 .net5 与 Swashbuckle 一起使用

【问题讨论】:

    标签: c# swagger openapi .net-5 swashbuckle


    【解决方案1】:

    您可以通过这种方式获取请求的版本

    HttpContext.GetRequestedApiVersion()
    

    【讨论】:

    • HttpContext 似乎没有 GetRequestedApiVersion 。我应该通过中间件或像这样的东西添加它吗?由于HttpContext不知道我在使用openapi,所以我有点困惑
    • Microsoft.AspNetCore.Mvc.Versioning里面,也可以用Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer作为依赖安装
    猜你喜欢
    • 2011-11-28
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多