.NET 9 中的 WebAPI 文档 重新添加Swagger或改用Scalar

示例代码:https://download.csdn.net/download/hefeng_aspnet/90408226

随着.NET 9的发布,ASP.NET Core 团队决定删除内置的 Swagger 支持(Swashbuckle),主要原因如下:

1、维护挑战: Swashbuckle 不再积极维护、缺乏更新并且没有 .NET 8 的官方版本。

本机元数据支持:ASP.NET Core 现在包含内置元数据来描述 API,从而减少了对外部工具的需求。

2、专注于 OpenAPI: 微软正在增强对 OpenAPI 的原生支持,以Microsoft.AspNetCore.OpenApi提供无缝的文档生成。

3、现代替代品: .http 文件和Visual Studio 中的Endpoints Explorer等工具允许进行测试和探索,而无需依赖第三方包。

**4、鼓励创新:**默认删除 Swashbuckle 可以鼓励社区驱动的工具更好地满足开发人员的需求。

该项目展示了如何利用现代替代方案来适应这些变化,并提供了实际示例来帮助您入门。

本文和项目包含的内容

为了帮助开发人员过渡到ASP.NET Core 9的新方向,此存储库包含三个示例:

1、使用 .http 文件: 一种在Visual Studio和VS Code中测试 API 的轻量级、现代方法。

2、重新添加 Swagger 支持: 为那些仍然想使用 Swagger(Swashbuckle)进行 API 文档编写的人提供的示例。

**3、介绍 Scalar:**Swagger 的强大替代品,具有附加功能、现代 UI 和丰富的 API 探索功能。

使用 .http 文件

.http 文件允许您直接从编辑器定义和测试HTTP 请求,例如带有REST 客户端扩展的Visual Studio Code或Visual Studio。

为什么是.http 文件?

1、轻量、简单、易于阅读。

2、允许快速测试端点。

3、支持Visual Studio Code中的变量和响应重用。

示例:一个简单的 .http 文件

@hostaddress = https://localhost:5555/calculation

@value1 = 20

@value2 = 22

Add Request

@name add

POST {{hostaddress}}/add

Content-Type: application/json

{

"value1": {{value1}},

"value2": {{value2}}

}

Reuse Response

@addresult = {{add.response.body.result}}

POST {{hostaddress}}/add

Content-Type: application/json

{

"value1": {{addresult}},

"value2": {{addresult}}

}

笔记:

在Visual Studio Code中,REST 客户端扩展支持变量和响应重用(例如add.response.body.result)。

在Visual Studio中,响应变量尚不受支持,但您仍然可以执行请求并有效地调试。

Visual Studio 中的示例 UI:

重新添加 Swagger 支持

虽然 Swagger 已从 .NET 9 中删除,但您可以使用 Swashbuckle 轻松地将其添加回来。

添加Swagger的步骤:

安装所需的 NuGet 包:

dotnet add package Microsoft.AspNetCore.OpenApi

dotnet add package Swashbuckle.AspNetCore

更新Program.cs:

builder.Services.AddSwaggerGen(options =>

{

options.SwaggerDoc("v1", new OpenApiInfo

{

Title = "Sample API",

Version = "v1",

Description = "API to demonstrate Swagger integration."

});

});

// some code

if (app.Environment.IsDevelopment())

{

app.UseSwagger();

app.UseSwaggerUI();

}

Swagger UI 预览:

Swagger 提供了一个清晰的界面来探索和测试您的 API 端点。

Scalar 简介:一种现代替代方案

Scalar是一个开源 API 平台,它将 API 文档和测试提升到了一个新的水平。它提供了现代功能、直观的用户体验和时尚的界面(为真正的工程师提供暗黑模式!)。

为什么要使用Scalar?

1、现代 REST 客户端:无缝测试并与 API 交互。

2、漂亮的 API 参考:生成干净、可读的 API 文档。

3、代码生成:使用 25 种以上的语言或框架生成示例。

Scalar示例输出

C# 示例:

using System.Net.Http.Headers;

var client = new HttpClient();

var request = new HttpRequestMessage

{

Method = HttpMethod.Get,

RequestUri = new Uri("https://localhost:5555/api/v1/time"),

};

using (var response = await client.SendAsync(request))

{

response.EnsureSuccessStatusCode();

var body = await response.Content.ReadAsStringAsync();

Console.WriteLine(body);

}

JavaScript/jQuery 示例:

const settings = {

async: true,

crossDomain: true,

url: 'https://localhost:5555/api/v1/time',

method: 'GET',

headers: {}

};

$.ajax(settings).done(function (response) {

console.log(response);

});

将 Scalar 添加到您的项目中

安装 Scalar NuGet 包:

dotnet add package Scalar.AspNetCore

更新Program.cs:

if (app.Environment.IsDevelopment())

{

app.MapScalarApiReference();

}

Scalar UI 预览

概括

借助 .NET 9,Microsoft 将重点转移到本机 OpenAPI 支持,从而消除了对 Swashbuckle 的依赖。但是,借助.http 文件、Swagger和Scalar,您可以使用强大的工具:

1、使用.http 文件进行轻量级 API 测试。

2、重新整合Swagger以获得熟悉的交互式文档。

3、探索Scalar,获得具有高级功能的现代且功能丰富的替代方案。

源代码

https://download.csdn.net/download/hefeng_aspnet/90408226

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

相关推荐
唐青枫4 小时前
别滥用 Task.Run:C# 异步并发实操指南
c#·.net
zzzhpzhpzzz17 小时前
Win10快速安装.NET3.5
.net·win10
许泽宇的技术分享19 小时前
Windows MCP.Net:基于.NET的Windows桌面自动化MCP服务器深度解析
windows·自动化·.net
百锦再1 天前
.NET 的 WebApi 项目必要可配置项都有哪些?
java·开发语言·c#·.net·core·net
hqwest2 天前
C#WPF实战出真汁06--【系统设置】--餐桌类型设置
c#·.net·wpf·布局·分页·命令·viewmodel
做一位快乐的码农2 天前
基于.net、C#、asp.net、vs的保护大自然网站的设计与实现
c#·asp.net·.net
YF云飞2 天前
.NET 在鸿蒙系统(HarmonyOS Next)上的适配探索与实践
华为·.net·harmonyos
小码编匠2 天前
C# Bitmap 类在工控实时图像处理中的高效应用与避坑
后端·c#·.net
咕白m6253 天前
C# 将 Excel 转为 CSV 的高效解决方案
.net
不知名搬运工3 天前
18 ABP Framework 模块管理
.net