.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

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

相关推荐
唐青枫13 小时前
C#.NET Monitor 与 Mutex 深入解析:进程内同步、跨进程互斥与使用边界
c#·.net
会写代码的建筑师15 小时前
.NET 控制台后台程序实践细节总结
后端·.net
阿捞216 小时前
在 .NET 中使用 Moonshot Kimi + AgentFramework:从 SDK 到 Agent 的完整实践
html·.net·xhtml
步步为营DotNet16 小时前
解锁.NET 11 中 Microsoft.Extensions.AI 在智能后端开发的深度应用
人工智能·microsoft·.net
无风听海16 小时前
.NET10之C# 中的is null深入理解
服务器·c#·.net
bjzhang7516 小时前
FastReport——一个面向.NET生态的开源报表引擎
.net·fastreport
武藤一雄1 天前
C# 异常(Exception)处理避坑指南
windows·microsoft·c#·.net·.netcore·鲁棒性
步步为营DotNet1 天前
剖析.NET 11 中 Native AOT 在高性能客户端应用的极致实践
.net
步步为营DotNet1 天前
深度探索.NET Aspire在云原生应用性能与安全加固的创新实践
安全·云原生·.net
我是唐青枫1 天前
C#.NET TPL Dataflow 深入解析:数据流管道、背压控制与实战取舍
c#·.net