资讯动态

.NET 11 - 体验一下OpenAPI关于File stream result新特性

发布时间:2026/10/16 16:02:14 来源:尧图企业网站定制
1. 简单介绍时光匆匆.NET Conf 2026大会将会在2026年11月份举办(11/10-11/13)到时微软将会发布.NET11这是一个STS版本(Standard Term Support), 微软提供两年支持。自.NET9以来微软对OpenAPI做了很多变更。在.NET11中微软也增加了很多关于OpenAPI的新特性比如File stream result可以在OpenAPI document中进行描述同时SseItemT 也可以表示在OpenAPI document中等。这边将尝试一下OpenAPI关于File stream result的新特性。2. 准备阶段由于.NET11 RC1的workload没有出现在Visual Studio 2026中(当前只出现在Visual Studio 2026 Insiders和Visual Studio Code with the C# Dev Kit中)需要安装一下Visual Studio Insiders。2.1 安装Visual Studio Insiders可以点击VS Insiders 链接进行下载安装。安装成功之后Program and Feature的图片如下​2.2 安装.NET 11 SDK可以直接从.NET官网根据自己的操作系统选择安装的版本即可​3. 体验OpenAPI3.1 创建Minimal API项目1) 创建一个Asp.NET Core WebAPI应用程序如下图所示​note, 其中Microsoft.AspNetCore.OpenApi是创建项目时内置的添加一下nuget package Swashbuckle.AspNetCore这样就有了Swagger UI用来展示OpenAPI文档了。.NET 11 ASP.NET webapi项目默认支持OpenApi3_2。OpenApi3_2 spec 是2025年9月才发布的增加了很多新特性。OpenApi3_2 对于HTTP Query method和Server-Sent Events类型的支持在.NET11 OpenAPI新特性中也都有体现的。​2) 准备如下OpenAPI试验代码var builder WebApplication.CreateBuilder(args); builder.Services.AddOpenApi(); var app builder.Build(); if (app.Environment.IsDevelopment()) { app.MapOpenApi(); app.UseSwaggerUI(options { options.SwaggerEndpoint(/openapi/v1.json, .NET11 RC1 Check); }); } app.MapGet(/openapicheck/filestream, () { var content System.Text.Encoding.UTF8.GetBytes(...); var stream new MemoryStream(content); return TypedResults.Stream(stream, text/plain, filestream.txt); }) .ProducesFileStreamHttpResult(contentType: text/plain) .WithName(DownloadStream); app.Run();note, 上面endpoint(/openapicheck/filestream)的返回值类型FileStreamHttpResult就是File stream类型的一种另外也支持FileContentHttpResult和FileStreamResult类型。3.2 运行一下1) 使用dotnet run命令运行项目然后在浏览器中打开swagger默认页比如http://localhost:5080/swagger/index.html2) 点击swagger界面中的对应端点的Execute按钮发现能正常运作同时下方还有个Download file链接可以进行文件下载的3) 打开运行时生成的OpenAPI documentFile stream result确实在OpenAPI document中展示成了{ type: string, format: binary }4.总结本文简单尝试了一下.NET11中OpenAPI支持展示File stream result的新特性。.NET11在2026年9月8号已经进入Release Candidate 1阶段新特性还在持续更新中需要继续学习一下。本文如果哪里有错误麻烦告之谢谢谢谢

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑