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

发布时间:2026/10/16 16:02:16

.NET 11 - 体验一下OpenAPI关于File stream result新特性 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阶段新特性还在持续更新中需要继续学习一下。本文如果哪里有错误麻烦告之谢谢谢谢
延伸阅读

更多相关文章

2026/10/16 16:02:15

动画无障碍与降级

7.4 动画无障碍与降级动效设计在提升视觉体验的同时,需要兼顾特殊用户的可访问性需求与交互的功能性本质。无障碍降级机制适配前庭功能障碍用户的动效耐受度,避免动效引发的身体不适;交互状态联动则回归动画的交互本质,让动效服务…

2026/10/16 18:28:35

CentOS 7.9安装Zabbix 6.0 LTS完整指南与避坑实战

简介:面向CentOS 7.9环境,完整介绍了Zabbix 6.0 LTS的源码部署全流程,覆盖Nginx 1.20.2编译安装、MySQL 8.0依赖配置、Zabbix Server与Agent的编译安装,以及PHPFastCGI的衔接等内容,适合Linux运维工程师和监控平台初学…

2026/10/16 18:28:35

思科N9K配置实战:从管理VLAN到链路聚合的七步闭环指南

简介:本资源是一份面向网络工程师、数据中心运维人员及思科认证备考者的N9K系列交换机实操配置指南,聚焦云环境与大规模虚拟化场景下的核心命令实践。文档系统梳理了设备命名、关键服务启用(Telnet/OSPF/BGP/VTP等)、VLAN创建与管…

2026/10/16 18:28:35

从API到套件化:企业AI助手安全接入自有系统的核心指南

接到一个很实际的需求:某团队希望让腾讯云 WorkBuddy 里的智能助手,直接去查他们内部的工单系统、改订单状态、盯一下告警。这要是放在一年前,我的标准做法是给模型塞一堆OpenAPI。但今天在 WorkBuddy 做套件化接入时,我很快意识到…

2026/10/16 18:28:35

Protege汉化版实战指南:从界面本地化到本体工程提效

简介:本资源为面向中文用户的Protege本体编辑器汉化版安装包,专为知识工程、语义网研究及高校人工智能/信息管理课程学习者设计,有效解决原版英文界面带来的理解门槛与操作障碍。压缩包共4个文件(1.15MB),含…

2026/10/16 5:33:43

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/16 4:03:48

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/15 13:42:16

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/16 0:01:11

Cephadm实战指南:Linux系统工程师的生产级Ceph集群部署与排障

简介:本资源是一份完整的Ceph分布式存储系统中文技术文档合集,面向Linux系统运维工程师、云平台架构师及存储方向开发者,帮助读者系统掌握Ceph集群的部署、配置与运维核心能力。文档覆盖对象存储(RGW)、块设备&#xf…

2026/10/16 0:01:11

ITK中SpatialObject几何体系解析:坐标系、变换与管道集成

1. 空间对象的定位:为什么 ITK 需要一套几何描述体系很多刚开始接触 ITK 的朋友,包括我自己,最初都是被它的图像滤波、配准、分割这些“正统”功能吸引进来的。等真正上手做点实际项目,比如把分割出来的器官边界做量化分析、给血管…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑