.NET10 - 尝试一下Open Api的一些新特性

部署运行你感兴趣的模型镜像

1.简单介绍

.NET9中Open Api有了很大的变化,在默认的Asp.NET Core Web Api项目中,已经移除了Swashbuckle.AspNetCore package,同时progrom中也变更为

        builder.Servers.AddOpenApi()
        builder.Services.MapOpenApi()

2025年微软将发布.NET10,OpenApi将会有一些enhancement,这边将尝试一下.NET10中Open Api的一些新特性。

2.具体说明

2.1 支持yaml格式

.NET10支持yaml格式的OpenApi文档,

2.1.1 创建项目并配置OpenAPI

1) 创建项目

        

 2) Program中OpenApi相关代码变更为,

if (app.Environment.IsDevelopment())
{
	app.MapOpenApi("/openapi/v3.yaml");
	app.UseSwaggerUI(options =>
	{
		options.SwaggerEndpoint("/openapi/v3.yaml", "v3");
	});
}

3) 添加的package reference如下,

<ItemGroup>
	<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.0-preview.3.25172.1" />
	<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="8.1.1" />
</ItemGroup>
2.1.2 运行一下

发现确实有yaml格式的Open Api文档生成,

1) 访问 https://localhost:<port>/swagger/index.html,界面如下图所示,

        

2) 访问yaml文档,地址是https://localhost:<port>/openapi/v3.yaml,界面如下图所示,

        

note, yaml格式的文档当前只能通过OpenAPI endpoint的形式访问到,比如

https://localhost:<port>/openapi/v3.yaml

后续微软可能还会添加一个新功能-build阶段生成yaml文档

        

2.2 支持添加Comment到OpenApi文档

2.2.1 创建项目并配置OpenAPI

1) 创建一个默认的Asp.NET Core Web Api项目,

        

2)在项目文件中添加<GenerateDocumentationFile>

<PropertyGroup>
	<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

3) 更新Progrom,

if (app.Environment.IsDevelopment())
{
	app.MapOpenApi("/openapi/v1.json");

	app.UseSwaggerUI(options =>
	{
		options.SwaggerEndpoint("/openapi/v1.json", "v1");
	});
}

4)为Controller中的方法添加注释,如下图所示,

  

/// <summary>
/// Get Weather Data
/// </summary>
/// <remarks>
/// Generating random Weather Data
/// </remarks>
/// <returns>Random WeatherForecast data generated and returned from method Get </returns>
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get(){...}
2.2.2 运行一下

1)运行dotnet run 

        

2) 访问对应的Open Api文档,发现<Summary>,<Remark>等相关的comment都已经输出到了OpenApi文档中了。

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

        

note, 如果comment中有<parms>,也会包含到OpenApi文档中的。 

2.3 Response description

当前ProducesResponseType增加了一个Description参数,这个参数也包含到OpenApi文档中

        

        

3.总结

本文简单尝试了一下.NET 10如下三个新特性

1) 支持yaml格式的OpenApi文档

2) 支持OpenApi中包含comment

3) ProduceResponseType中新增Description参数并支持导出到OpenApi文档。

当前大语言模型普及越来越广,其中Plugin/Function Calling是支持从Open Api文档转化成plugin的

await kernel.ImportPluginFromOpenApiAsync( 
   pluginName: "plugin01", 
   uri: new Uri("localhost:8080/swagger/v1/swagger.json"), 
   executionParameters: new OpenApiFunctionExecutionParameters() { 
       EnablePayloadNamespacing = true 
   } 
);

同时微软的低代码平台Power Platform的custom connector也支持从OpenApi文档导入

        

微软在.NET10中对OpenApi做了进一步enhancement,这样就有了更完备的OpenApi文档,OpenApi与大语言模型相关应用或者Power Platform平台的整合将变得更加平滑。

2025年11月微软将发布.NET10,这是LTS(Long Term Support)版本。当前.NET10已经处于Preview3版本,新功能还在持续更新中,还需继续跟着微软学习一下。

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

您可能感兴趣的与本文相关的镜像

Qwen3-VL-30B

Qwen3-VL-30B

图文对话
Qwen3-VL

Qwen3-VL是迄今为止 Qwen 系列中最强大的视觉-语言模型,这一代在各个方面都进行了全面升级:更优秀的文本理解和生成、更深入的视觉感知和推理、扩展的上下文长度、增强的空间和视频动态理解能力,以及更强的代理交互能力

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值