.NET 9 - 尝试一下Open Api 的一些变化

ops/2024/10/25 8:43:07/

1.简单介绍

.NET 9 中 OpenAPI 也有一些变化,这边也简单体验一下.NET 9 中的OpenAPI的变化,具体的话,可以参考如下文章,谢谢

.NET 9 OpenAPI

2. .NET 8的OpenAPI

这边以Visual Studio 2022中的ASP.NET Core Minimal API模板来创建项目,

2.1 创建项目并配置OpenAPI

1)创建项目时候,默认勾选 Enable OpenAPI support

        

2) 发现默认OpenAPI相关的配置如下

        

3)默认加入了 Swashbuckle.AspNetCore package

        

2.2 运行一下

可以访问生成的Swagger UI和OpenAPI document

Swagger UI - https://localhost:<port>/swagger/index.html
OpenAPI document(运行时候生成的) -  https://localhost:<port>/swagger/v1/swagger.json

3. .NET 9的Open API

3.1 创建项目并配置OpenAPI

1) 创建项目时,选中 Enable OpenAPI support

        

2) 创建项目后,发现在program文件中现在变成了

        builder.Servers.AddOpenApi()

        builder.Services.MapOpenApi()

        

3)默认加入的nuget package是 Microsoft.AspNetCore.OpenApi,之前的Swashbuckle.AspNetCore默认没有添加了

        

3.2 运行一下

发现Open API的UI没有了,但是有OpenAPI document 生成, 地址是

https://localhost:<port>/openapi/v1.json

.NET 9 中 使用 package Microsoft.AspNetCore.OpenApi就可以生成OpenAPI document了

3.3 添加 OpenAPI UI

如果需要Swagger UI,也可以添加package

Swashbuckle.AspNetCore.SwaggerUI

        

同时配置为,

        

3.4 再次运行一下

Swagger UI已经有了,地址是

https://localhost:<port>/swagger/index.html

3.5 生成OpenAPI Document

.NET 9 中,使用package Microsoft.Extensions.ApiDescription.Server ,可以在编译时生成OpenAPI document

1) 添加package

        

2) 配置项目

        


3) 编译项目,发现多了OpenAPI document

        

4. .NET 9 中的变化

1) 内置支持OpenAPI document生成(在运行时阶段),

2) 使用SwashBuckle.AspNetCore的方式可能有变化

.NET 9 中OpenAPI也添加了一些别的新特性,比如

Microsoft.AspNetCore.OpenApi package 是aot兼容的

5.总结

以上简单比较了一下.NET8与.NET9中的OpenAPI

如果哪里有错误,麻烦告之,谢谢谢谢!


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

相关文章

十七、行为型(命令模式)

命令模式&#xff08;Command Pattern&#xff09; 概念 命令模式是一种行为型设计模式&#xff0c;它将请求封装成一个对象&#xff0c;从而使您可以使用不同的请求对客户进行参数化&#xff0c;排队请求&#xff0c;以及支持可撤销操作。通过这种模式&#xff0c;调用操作的…

Kubernetes:(二)K8Sv1.20二进制部署

文章目录 一、k8s项目架构二、二进制搭建 Kubernetes v1.20 &#xff08;单master节点&#xff09;1.操作系统初始化配置2.部署 docker引擎3. etcd的概念4. 证书认证5. node01 节点操作&#xff08;192.168.44.10&#xff09;6. node02 节点操作&#xff08;192.168.44.40&…

Maven学习笔记

目录 一、什么是Maven 二、maven下载和安装目录 1、安装目录解析 2、maven仓库 二、maven项目创建&#xff08;Hello&#xff09; 四、maven项目操作 五、创建HelloFriend 六、maven项目中pom.xml标签解释 1、坐标 2、依赖 &#xff08;1&#xff09;依赖的范围 &a…

Java最全面试题->Java主流框架->Zuukeeper面试题

文章目录 ZuukeeperZooKeeper是什么?ZooKeeper和dubbo的区别?Zookeeper的java客户端都有哪些?ZooKeeper提供了什么?说说ZooKeeper文件系统说说ZAB协议?Znode有哪些类型?Zookeeper节点宕机如何处理?Zookeeper有哪几种几种部署模式?Zookeeper的典型应用场景?说一下Zooke…

开启RefCell debug_refcell feature查看借用冲突位置

文章目录 背景分析解决方法 本文解决两个问题&#xff1a; 开启rust源码库中的feature开启debug_refcell feature的方法查看 borrow 借用冲突的位置 背景 使用 RefCell 来实现内部可变性是在 Rust 开发中常用的方式&#xff0c;但是当逻辑复杂起来&#xff0c;常常会有可变借…

C++(面向对象、封装性、构造函数)

面向对象 三大特征&#xff1a;封装、继承、多态 C中的class是从C的struct扩展来的&#xff0c;两者的区别是默认访问权限不同。 struct的默认访问权限是公有的public class默认访问权限是私有的private 访问权限 类的内部派生类&#xff08;子类&#xff09…

RK3568开发板(debain系统)与Ubuntu使用nfs共享文件

VMware虚拟机 Ubuntu18.04 【网络配置陈桥接模式】 RK3568开发板【我是用讯为的RK3568】 网线连接路由器或者和电脑直连&#xff08;J13网口&#xff09; 1、Ubuntu上nfs服务器安装 1.1、命令如下&#xff1a; sudo apt-get update sudo apt-get install nfs-kernel-server1…

缓存预取文章比较分析

这篇文章主要记录调研的cache prefetch部分有价值的论文&#xff0c;并给出一些总结 Baleen 核心内容 ML learning-based admission policy prefetch.exploit a new cache residency model to guide model training. 首先对 access pattern 进行了统计分析&#xff0c;提取…