微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OData v8 - 请求头版本控制

如何解决OData v8 - 请求头版本控制

我正在尝试使用 Microsoft.AspNetCore.OData v8.0.1 和版本控制通过 .NET 5 中的请求标头使版本控制与 SwaggerUI 一起工作。

v8 之前,你曾经可以使用

services.AddODataApiExplorer(...);

这将为 Startup 的 Configure 方法启用 DependencyInjection:

public void Configure(IApplicationBuilder app,IWebHostEnvironment env,IApiVersionDescriptionProvider provider) {
    ...
    app.UseSwagger();

    app.UseSwaggerUI(options => {
        // build a swagger endpoint for each discovered API version
        foreach (var description in provider.ApiVersionDescriptions) {
                    
            options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json",description.GroupName.toupperInvariant());
        }
        options.ShowExtensions();
    });
    ...
}

OData8 似乎没有立即处理这个问题,best documentation I can find on versioning 只处理 URL 段和查询字符串版本的提示。如果可以,我更愿意在 URL 中保存字符,这就是为什么我要使用请求标头版本控制。

感谢任何指导。

解决方法

所以,而不是使用

services.AddODataApiExplorer(...);

你可以使用

services.AddApiVersioning(...);

它(当前)不会被 SwaggerUI 正确接收,但它会正确生成客户端代码并通过路由到目标版本控制器来响应版本控制。

我能够在文章“REST API versioning with ASP.NET Core”中找到关于版本控制的最清晰简洁的文档

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。