暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

.NET9增强OpenAPI规范,不再内置swagger

chester技术分享 2024-12-25
430

在 .NET 9 的更新中,微软增强了原生 OpenAPI。

这一变化表明 .NET 正在更加拥抱开放标准,同时让开发者体验更加轻松高效。

本文将探讨为何进行这一更改、OpenAPI 的优势,以及如何在 .NET 9 中使用 OpenAPI。


为什么不再内置 Swagger?

 

标准化的需求

Swagger 是 OpenAPI 规范的早期实现,虽然功能强大,但它逐渐被视为工具集的一部分,而非行业标准。

转向原生 OpenAPI 支持意味着 .NET 正式采用更具广泛认可的标准,从而提升与其他生态工具的兼容性。


简化依赖关系

移除对 Swagger-specific 组件的依赖,使框架更简洁并降低复杂性。

开发者可以直接依赖 OpenAPI 规范,而不是被局限在 Swagger 工具集内。


灵活性与互操作性

OpenAPI 作为开放标准,被广泛支持于各类工具和平台(如 Postman、API 网关、自动化测试工具等)。

这使得 .NET 应用程序更容易集成到多样化的技术栈中。


如何在 .NET 9 中使用 OpenAPI?

.NET 9 提供了对 OpenAPI 的原生支持,通过简单的配置即可生成 OpenAPI 文档并集成可视化工具,如 Swagger UI 和 Scalar API Reference。以下是配置步骤:


添加必要的服务

在 Program.cs
 文件中,调用 AddOpenApi
 方法注册 OpenAPI 支持。


映射 OpenAPI 文档

使用 MapOpenApi
 映射 OpenAPI 文档路径,便于开发和测试。


集成可视化工具

通过 UseSwaggerUI
 或 MapScalarApiReference
 添加交互式文档界面。

SwaggerUI需要安装Swashbuckle.AspNetCore.SwaggerUi 包。

    dotnet add package Swashbuckle.AspNetCore.SwaggerUi

    ScalarUI 需要安装 Scalar.AspNetCore 包。

      dotnet add package Scalar.AspNetCore


      示例代码

      以下代码展示了如何在 .NET 9 中配置和使用 OpenAPI:

        var builder = WebApplication.CreateBuilder(args);


        builder.Services.AddControllers();


        builder.Services.AddOpenApi();


        var app = builder.Build();


        if (app.Environment.IsDevelopment())
        {
            app.MapOpenApi();
            app.UseSwaggerUI(options =>
                {
                    options.SwaggerEndpoint("/openapi/v1.json""v1");
                });
            app.MapScalarApiReference();
        }


        app.UseAuthorization();




        app.MapControllers();


        app.Run();

        示例解析

        服务注册

          builder.Services.AddOpenApi();

          此行代码启用了 OpenAPI 支持。

          映射文档

            app.MapOpenApi();

            这将 OpenAPI 文档映射到默认路径 openapi/v1.json。

            增加文档可视化

              app.UseSwaggerUI(options =>
              {
                 options.SwaggerEndpoint("/openapi/v1.json""v1");
              });
              app.MapScalarApiReference();  

              这将增加swagger和scalar两种可视化工具。

              访问可视化工具

              SwaggerUI 需要访问/swagger。


              Scalar 需要访问/scalar/v1。

              这两个工具都可以用于可视化 OpenAPI 文档,提供交互式界面以测试 API。


              总结

              .NET 9 中移除内置 Swagger,增加 OpenAPI 支持,是一个符合行业趋势的重要改进。这一变化不仅提升了开发体验,也使得 .NET 应用能够更高效地与其他工具和平台协作。

              关注获取技术分享

              文章转载自chester技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论