.NET 9 增强 OpenAPI 规范
在 .NET 9 的更新中,微软增强了原生 OpenAPI。这一变化表明 .NET 正在更加拥抱开放标准,同时让开发者体验更加轻松高效。本文将探讨为何进行这一更改、OpenAPI 的优势,以及如何在 .NET 9 中使用 OpenAPI。
为什么不再内置 Swagger?
1. 标准化的需求
Swagger 是 OpenAPI 规范的早期实现,虽然功能强大,但它逐渐被视为工具集的一部分,而非行业标准。转向原生 OpenAPI 支持意味着 .NET 正式采用更具广泛认可的标准,从而提升与其他生态工具的兼容性。
2. 简化依赖关系
移除对 Swagger-specific 组件的依赖,使框架更简洁并降低复杂性。开发者可以直接依赖 OpenAPI 规范,而不是被局限在 Swagger 工具集内。
3. 灵活性与互操作性
OpenAPI 作为开放标准,被广泛支持于各类工具和平台(如 Postman、API 网关、自动化测试工具等)。这使得 .NET 应用程序更容易集成到多样化的技术栈中。
如何在 .NET 9 中使用 OpenAPI?
.NET 9 提供了对 OpenAPI 的原生支持,通过简单的配置即可生成 OpenAPI 文档并集成可视化工具,如 Swagger UI 和 Scalar API Reference。
以下是配置步骤:
1. 添加必要的服务
在 Program.cs 文件中,调用 AddOpenApi 方法注册 OpenAPI 支持。
2. 映射 OpenAPI 文档
使用 MapOpenApi 映射 OpenAPI 文档路径,便于开发和测试。
3. 集成可视化工具
通过 UseSwaggerUI 或 MapScalarApiReference 添加交互式文档界面。
UseSwaggerUI需要安装Swashbuckle.AspNetCore.SwaggerUi包。dotnet add package Swashbuckle.AspNetCore.SwaggerUi
MapScalarApiReference需要安装Scalar.AspNetCore包。dotnet add package Scalar.AspNetCore
示例代码
以下代码展示了如何在 .NET 9 中配置和使用 OpenAPI:
using Scalar.AspNetCore;
namespace WebApplication2
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// 注册控制器和 OpenAPI 服务
builder.Services.AddControllers();
builder.Services.AddOpenApi();
var app = builder.Build();
// 开发环境中启用 OpenAPI 文档和可视化工具
if (app.Environment.IsDevelopment())
{
app.MapOpenApi(); // 映射 OpenAPI 文档路径
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 应用能够更高效地与其他工具和平台协作。
通过 OpenAPI 的原生支持和灵活的可视化工具选择,开发者可以更轻松地生成文档、测试接口和集成服务。使用示例代码,立即开始在 .NET 9 中体验 OpenAPI 的强大功能吧!
.NET 9 增强 OpenAPI 规范的更多相关文章
- OPENAPI规范Swagger
OPENAPI规范 是一种规范,Swagger是一种工具,Swagger帮我们使用OPENAPI更具体更完善,更好. 博客1:https://app.swaggerhub.com/help/index ...
- 【API规范】OpenAPI规范
OpenAPI规范 openAPI 3.0_百度搜索 OpenAPI Specification 2.0 - CSDN博客 APP相关_API 列表_OpenAPI 2.0_开发指南_移动推送-阿里云 ...
- OpenAPI规范入门
由于API对于我们的软件运行方式至关重要,因此记录我们的API对于确保我们大型IT组织中的每个人都了解正在发生的事情至关重要,这就是我们使用OpenAPI来帮助记录API规范的原因. 在本文中,我将向 ...
- OpenAPI 3.0 规范-食用指南
概述 OpenAPI 3.0 规范由 8 个根对象组成: openapi info servers paths components security tags externalDocs OpenAP ...
- 关于HTML与CSS编写规范
之前一直没有注意到这一点,因为当看到一些优秀的网站的源代码的时候,打开他们引用的css文件格式看起来也并非规范.但幸运的昨天偶然间看到的通过增强CSS规范可读性可优化页面性能,于是下决心痛改前非. 我 ...
- REST easy with kbmMW #20 – OpenAPI and Swagger UI
即将推出的kbmMW更新不仅是一些bug修正,同时将包含一个新的主要功能:客户端存根生成器框架. 那什么是客户端存根生成器框架呢? 他是一个基于kbmMW smart services,可以生成由各种 ...
- OpenAPI初体验
问题的一开始源于客户和服务部门抱怨我的REST API文档写得不好,然后又了解到 django rest framework 利用 coreapi 能自动生成文档,再就是看到 swagger.io 上 ...
- 基于OAS设计可扩展OpenAPI
前言 随着互联网行业的兴起,开发模式已逐步转换为微服务自治:小团队开发微服务,然后通过Restful接口相互调用.开发者们越来越渴望能够使用一种“官话”进行流畅的沟通,甚至实现多种编程语言系统的自动化 ...
- 使用OpenAPI构建更智能的API
像OpenAPI这样的API描述规范是一个关键工具,您应该尽可能地将其好好掌握,记录和执行API的工作由计算机和开发人员完成:OpenAPI 3.0现在允许额外的表现力,可以让机器为我们做更多有用的工 ...
- openapi and light-4j
light-4j项目支持openapi规范,本文介绍一下参照相关demo做的上传功能. openapi.yaml,按照规范编写内容,/openapi/swagger可以查看对应的swagger页面,A ...
随机推荐
- 深入探索Spring AI:源码分析流式回答
在上一章节中,我们深入分析了Spring AI的阻塞式请求与响应机制,并探讨了如何增强其记忆能力.今天,我们将重点讲解流式响应的概念与实现.毕竟,AI的流式回答功能与其交互体验密切相关,是提升用户满意 ...
- Vue中mixins(混入)的介绍和使用
为什么引进 mixins 随着项目的开发,组件越来越多 ,这就导致了在各个组件中需要编写功能相同的代码段,重复地定义这些相同的属性和方法,导致代码地冗余,还不利于后期代码的维护 混入mixins 的创 ...
- kotlin更多语言结构——>空安全
可空类型与非空类型 Kotlin 的类型系统旨在从我们的代码中消除 NullPointerException .NPE 的唯一可能的原因可能是: - 显式调用 throw NullPointerEx ...
- Windows刷机-记录UltraSO工具安装错误
安装镜像刻录U盘工具UltralSO:UltraISO - ISO CD/DVD image creator, editor, burner, converter and virtual CD/DVD ...
- Cut the Sequence(单调队列DP+set)
题面 大意:一段长度为n的序列,分成若干段,每段值的总和不能超过m,求各段中最大值加起来的最小值. 其实最朴素的DP还是很好想的,以f[i]表示i及i以前已经分好所需的最小值,a[i]表示i点的值,那 ...
- 云原生周刊:K8s 的 13 个最佳开源监控工具
开源项目推荐 Silver Surfer 该项目旨在检查 Kubernetes 对象的 API 版本兼容性,并为其提供迁移路径,以便为集群升级做好准备. Actions Runner Controll ...
- Python实现火柴人的设计与实现
1.引言 火柴人(Stick Figure)是一种极简风格的图形,通常由简单的线段和圆圈组成,却能生动地表达人物的姿态和动作.火柴人不仅广泛应用于动画.漫画和涂鸦中,还可以作为图形学.人工智能等领域的 ...
- Chrome使用回退,出现表单提交失败,ERR_CACHE_MISS问题
是什么.为什么.怎么办 "ERR_CACHE_MISS" 错误通常发生在你使用浏览器的"返回"按钮时.这种错误与浏览器处理缓存数据的方式有关,特别是在处理表单和 ...
- Seralizable
class CSer { private String name; private int age; public CSer() { } public CSer(String name, int ag ...
- 解决mysql的语句中group_concat长度限制问题
在mysql中,有个函数叫"group_concat",平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了.其实MYSQL内部对这个是有设置的,默认不设置的长度是10 ...