在 .NET 9 中使用 Scalar 替代 Swagger

ops/2025/1/17 17:16:17/

前言

在.NET 9发布以后ASP.NET Core官方团队发布公告已经将Swashbuckle.AspNetCore(一个为ASP.NET Core API提供Swagger工具的项目)从ASP.NET Core Web API模板中移除,这意味着以后我们创建Web API项目的时候不会再自动生成Swagger API文档了。那么今天咱们一起来试试把我们的EasySQLite .NET 9的项目使用Scalar用于交互式API文档。

  • https://github.com/dotnet/aspnetcore/discussions/58103

Scalar介绍

Scalar是一个功能强大、易于使用的API客户端和文档生成工具,适用于各种规模的API项目,支持多种编程语言和平台。

  • https://github.com/scalar/scalar

  • https://github.com/scalar/scalar/tree/main/packages/scalar.aspnetcore

下载EasySQLite项目

EasySQLite是一个.NET 9操作SQLite入门到实战的详细教程,主要是对学校班级,学生信息进行管理维护。

  • 下载地址:https://github.com/YSGStudyHards/EasySQLite

git clone https://github.com/YSGStudyHards/EasySQLite.git

安装 Scalar.AspNetCore 包

在NuGet包管理器中搜索:Scalar.AspNetCore (支持.NET 8和.NET 9)选择安装:

安装 Microsoft.AspNetCore.OpenApi 包

用于添加OpenApi服务,这是Scalar所需的:

在 Program 中配置

            // 添加OpenApi服务,这是Scalar所需的builder.Services.AddOpenApi(options =>{options.AddDocumentTransformer((document, context, cancellationToken) =>{document.Info = new(){Title = "EasySQLite API",Version = "V1",Description = ".NET 8操作SQLite入门到实战"};return Task.CompletedTask;});});// 在开发环境中启用Scalarif (app.Environment.IsDevelopment()){app.MapScalarApiReference();//映射Scalar的API参考文档路径app.MapOpenApi();//映射OpenApi文档路径}

查看Scalar交互式API文档

在访问端口后面增加scalar/v1即可查看效果:

  • https://localhost:7240/scalar/v1


http://www.ppmy.cn/ops/150869.html

相关文章

如何设计一个 RPC 框架?需要考虑哪些点?

面试官:如何设计一个 RPC 框架?需要考虑哪些点? 设计一个远程过程调用(RPC)框架是一个复杂的系统工程,涉及多个方面的考虑。一个好的 RPC 框架应具备可扩展性、灵活性、易用性和高性能。下面是设计 RPC 框…

Rust 强制类型转换和动态指针类型的转换

在 Rust 中的强制类型转换(Coercion)语义,与 Java 或 C 中的子类到父类的转换有某些相似之处,但两者的实现机制和使用场景有很大的区别。 我们将从 Java/C 的子类到父类转换 和 Rust 的强制类型转换 的角度进行比较,帮…

LeetCode 热题 100_课程表(53_207_中等_C++)(图,拓扑排序)

LeetCode 热题 100_课程表(53_207) 题目描述:输入输出样例:题解:解题思路:思路一(广度优先搜索拓扑排序): 代码实现代码实现(思路一(拓扑排序&…

【Redis】Redis事务和Lua脚本的区别

Redis事务 概念 事务:Redis事务是一组命令的集合,这些命令会被序列化地执行,中间不会被其他命令插入。 MULTI/EXEC:Redis事务通过MULTI命令开始,通过EXEC命令执行所有已入队的命令。 特点 原子性: 事务…

Python编程中的两种主要的编程模式

在Python编程中,有两种主要的编程模式被广泛使用:面向过程编程(Procedural Programming) 和 面向对象编程(Object-Oriented Programming, OOP)。这两种模式各有优缺点,适用于不同的场景。 1. 面…

【软件工程】知识点总结(上)

重点章节:软件开发模型、敏捷开发方法、结构化开发方法、面向对象开发方法 目录 重点章节:软件开发模型、敏捷开发方法、结构化开发方法、面向对象开发方法 第一章:软件工程概述 1.1 内容简介 1.2 软件 1、软件的定义 2、软件的发展 3、软件的…

Android SystemUI——使用Dagger2加载组件(四)

SystemUI 是 Android 系统中的一个重要模块,负责绘制系统栏(如状态栏、导航栏)、锁屏、快捷设置等用户界面元素。由于其复杂性,良好的架构设计和依赖管理对于保持代码的可维护性和扩展性至关重要。这就是 Dagger2 在此发挥重要作用的地方。 一、Dagger2介绍 Dagger2 是一个…

基于微信小程序的游泳馆管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…