日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

想说爱你不容易 | 使用最小 WEB API 实现文件上传(Swagger 支持)

發布時間:2023/12/4 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 想说爱你不容易 | 使用最小 WEB API 实现文件上传(Swagger 支持) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

上回,我們使用最小 WEB API 實現文件上傳功能(《想說愛你不容易 | 使用最小 WEB API 實現文件上傳》),雖然客戶端訪問是正常的,但是當打開 Swagger 頁面時,發現是這樣的:

沒法使用 Swagger 頁面測試。

允許 Content Type

正常的 Swagger 頁面應該是這樣的:

看來,我們需要指定 Content Type:

app.MapPost("/upload",async?(HttpRequest?request)?=>{var?form?=?await?request.ReadFormAsync();return?Results.Ok(form.Files.First().FileName);}).Accepts<HttpRequest>("multipart/form-data");

結果,Swagger 頁面變成了這樣,增加了一堆 Form 相關屬性,唯獨沒有 file :

看來,只有自定義 Swagger 頁面了。

自定義 OperationFilter

在 OpenAPI 3.0 中,文件上傳的請求可以用下列結構描述(https://swagger.io/docs/specification/describing-request-body/file-upload/):

而在 Swashbuckle 中,可以使用 IOperationFilter 接口實現操作篩選器,控制如何定義 Swagger UI 的行為。

在這里,我們將利用 RequestBody 對象來實現上述的文件上傳的請求結構。

public?class?FileUploadOperationFilter?:?IOperationFilter {public?void?Apply(OpenApiOperation?operation,?OperationFilterContext?context){const?string?FileUploadContentType?=?"multipart/form-data";if?(operation.RequestBody?==?null?||!operation.RequestBody.Content.Any(x?=>x.Key.Equals(FileUploadContentType,?StringComparison.InvariantCultureIgnoreCase))){return;}?if?(context.ApiDescription.ParameterDescriptions[0].Type?==?typeof(HttpRequest)){operation.RequestBody?=?new?OpenApiRequestBody{Description?=?"My IO",Content?=?new?Dictionary<String,?OpenApiMediaType>{{FileUploadContentType,?new?OpenApiMediaType{Schema?=?new?OpenApiSchema{Type?=?"object",Required?=?new?HashSet<String>{?"file"?},Properties?=?new?Dictionary<String,?OpenApiSchema>{{"file",?new?OpenApiSchema(){Type?=?"string",Format?=?"binary"}}}}}}}};}} }

然后,在啟動代碼中配置,應用此操作篩選器:

builder.Services.AddSwaggerGen(setup?=> {setup.OperationFilter<FileUploadOperationFilter>(); });

這將呈現如下 Swagger 頁面:

結論

今天,我們使用 IOperationFilter 解決了最小 WEB API 實現文件上傳的 Swagger 支持。

想了解更多內容,請關注我的個人公眾號”My IO“

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的想说爱你不容易 | 使用最小 WEB API 实现文件上传(Swagger 支持)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产欧美精品在线观看 | 97公开免费视频 | 国内视频一区二区三区 | 国产拍拍视频 | 99久久99九九99九九九 | 性开放耄耋老妇hd | 影音先锋男人站 | 日韩一级生活片 | 无码人妻丰满熟妇区毛片蜜桃精品 | 五月天丁香婷 | 青青草原成人网 | 精品成人国产 | 久久白虎 | 日韩激情床戏 | 亚洲春色在线观看 | 精品国产乱码久久久久久1区2区 | 狠狠躁日日躁夜夜躁av | 国产精品国产三级国产专播精品人 | 亚洲a图| 亚洲欧美日韩国产成人精品影院 | 领导揉我胸亲奶揉下面 | 午夜网站在线 | 国产综合精品 | 成人国产精品免费 | 欧美日本一区二区三区 | 国产欧美一区二区三区视频在线观看 | 日韩精品欧美激情 | 日本h在线 | 无码免费一区二区三区 | 毛片av网站 | 91成人福利| 久久久久无码国产精品不卡 | 18禁男女爽爽爽午夜网站免费 | 欧美日韩v | 国产精品中文在线 | 国产一区二区三区乱码 | www夜色| 黄色av小说在线观看 | 69精品人妻一区二区三区 | 天天做天天射 | www.久热 | 精品乱子伦一区二区 | a级黄色小视频 | 亚洲精品一区二三区 | 在线xxxxx| 欧美激情二区三区 | 91蜜桃网站 | 亚洲精品aⅴ中文字幕乱码 国产精品调教视频 | 人人看人人插 | 久久亚洲综合国产精品99麻豆精品福利 | 日本老熟妇乱 | 97超碰人人澡 | 中文字幕在线1 | 波多野结衣简介 | 国产精品不卡一区二区三区 | 久久久久久无码午夜精品直播 | 天堂在线网 | 欧美丰满熟妇bbbbbb百度 | 国产成人影视 | www.日本免费| 假日游船法国满天星 | 毛片成人| 67194少妇| 蜜乳av 懂色av 粉嫩av | 欧美日韩爱爱 | 少妇高清精品毛片在线视频 | 亚洲天天影视 | 中文字幕在线影院 | 亚洲精品一区二区在线观看 | 免费日韩成人 | 九九九九九九精品 | 一色屋免费视频 | 国产又黄又硬又粗 | 污网站免费| 欧美成网| 久久久久久久久久艹 | 色综合天天综合网天天狠天天 | 久久久免费精品 | 亚洲精品一区二区三区四区乱码 | 丰满熟妇人妻av无码区 | 国产成人三级在线观看 | 金瓶狂野欧美性猛交xxxx | 精品人妻视频在线 | 任你操精品视频 | 69精品久久久久久久 | 国产成人精品av久久 | 久久一区二区视频 | 日韩精品在线观看一区 | 岛国精品一区二区 | 日本波多野结衣在线 | 毛片久久久久久久 | 全黄性高潮 | 男人的天堂在线播放 | 成人欧美一区二区三区黑人一 | 精东影业一区二区三区 | 看看毛片 | 暖暖成人免费视频 | 天堂综合在线 | www.国产精品.com |