精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何在 ASP.Net Core 中使用 Swagger

開(kāi)發(fā) 開(kāi)發(fā)工具
大家在開(kāi)發(fā)完 webapi 后,經(jīng)常為了方便接口雙方對(duì)接,需要將 webapi 接口文檔化,那有沒(méi)有什么快捷可交互的文檔呢?可以利用快捷工具 Swagger,它的可視化 UI 可輕松助你 API 文檔化的同時(shí)還方便測(cè)試 API。

[[374264]]

本文轉(zhuǎn)載自微信公眾號(hào)「碼農(nóng)讀書(shū)」,作者碼農(nóng)讀書(shū) 。轉(zhuǎn)載本文請(qǐng)聯(lián)系碼農(nóng)讀書(shū)公眾號(hào)。

大家在開(kāi)發(fā)完 webapi 后,經(jīng)常為了方便接口雙方對(duì)接,需要將 webapi 接口文檔化,那有沒(méi)有什么快捷可交互的文檔呢?可以利用快捷工具 Swagger,它的可視化 UI 可輕松助你 API 文檔化的同時(shí)還方便測(cè)試 API。

Swashbuckle 就是一個(gè)用于生成 Swagger 文檔的開(kāi)源工具包,這篇文章將會(huì)討論如何利用 Swashbuckle 來(lái)為你的 Restful API 生成可交互的文檔。

安裝 Swagger 中間件

要想利用 Swagger 文檔化,需要 nuget 引用 Swashbuckle.AspNetCore 包,還可以通過(guò) Visual Studio 2019 的 NuGet package manager 可視化界面安裝 或者 通過(guò) NuGet package manager 命令行工具輸入以下命令:

  1. dotnet add package Swashbuckle.AspNetCore 

配置 Swagger 中間件

為了配置 Swagger,在 Startup.ConfigureServices 方法中添加如下代碼,注意下面的 AddSwaggerGen 方法是用于給 API 文檔 添加一些元數(shù)據(jù)。

  1. services.AddSwaggerGen(c => 
  2.            { 
  3.                c.SwaggerDoc("v1", new Info 
  4.                { 
  5.                    Version = "v1"
  6.                    Title = "Swagger Demo"
  7.                    Description = "Swagger Demo for ValuesController"
  8.                    TermsOfService = "None"
  9.                    Contact = new Contact() { Name = "Joydip Kanjilal"
  10.                    Email = "joydipkanjilal@yahoo.com"
  11.                    Url = "www.google.com" } 
  12.                }); 
  13.            }); 

接下來(lái)就要啟動(dòng) Swagger了,在 Startup.Configure 方法下添加如下代碼:

  1. app.UseSwagger(); 
  2.     app.UseSwaggerUI(c => 
  3.     { 
  4.         c.SwaggerEndpoint("/swagger/v1/swagger.json""v1"); 
  5.     }); 

為了完整性,下面是 Startup 中的所有代碼清單。

  1. using Microsoft.AspNetCore.Builder; 
  2. using Microsoft.AspNetCore.Hosting; 
  3. using Microsoft.AspNetCore.Mvc; 
  4. using Microsoft.Extensions.Configuration; 
  5. using Microsoft.Extensions.DependencyInjection; 
  6. using Swashbuckle.AspNetCore.Swagger; 
  7. namespace IDGSwaggerDemo 
  8.     public class Startup 
  9.     { 
  10.         public Startup(IConfiguration configuration) 
  11.         { 
  12.             Configuration = configuration; 
  13.         } 
  14.         public IConfiguration Configuration { get; } 
  15.         public void ConfigureServices(IServiceCollection services) 
  16.         { 
  17.             services.AddMvc().SetCompatibilityVersion 
  18.             (CompatibilityVersion.Version_2_2);    
  19.             services.AddSwaggerGen(c => 
  20.             { 
  21.                 c.SwaggerDoc("v1", new Info 
  22.                 { 
  23.                     Version = "v1"
  24.                     Title = "Swagger Demo"
  25.                     Description = "Swagger Demo for ValuesController"
  26.                     TermsOfService = "None"
  27.                     Contact = new Contact() { Name = "Joydip Kanjilal"
  28.                     Email = "joydipkanjilal@yahoo.com"
  29.                     Url = "www.google.com" 
  30.                 } 
  31.                 }); 
  32.             }); 
  33.         } 
  34.         public void Configure(IApplicationBuilder app, 
  35.        IHostingEnvironment env) 
  36.         { 
  37.             if (env.IsDevelopment()) 
  38.             { 
  39.                 app.UseDeveloperExceptionPage(); 
  40.             } 
  41.             app.UseMvc(); 
  42.             app.UseSwagger(); 
  43.             app.UseSwaggerUI(c => 
  44.             { 
  45.                 c.SwaggerEndpoint("/swagger/v1/swagger.json""v1"); 
  46.             }); 
  47.         } 
  48.     } 

瀏覽 Swagger UI

現(xiàn)在我們運(yùn)行一下應(yīng)用程序來(lái)瀏覽一下 Swagger UI 地址,可以看到 UI 界面如下圖所示,圖中不同的 Http 請(qǐng)求使用了不同的顏色進(jìn)行標(biāo)識(shí),你甚至可以在UI上直接測(cè)試不同的 api 接口。

在 Action 方法上創(chuàng)建xml注解

到目前為止一切順利,在剛才生成的 swagger 文檔中,并沒(méi)有看到 5 個(gè) api 接口的任何注解,這就不優(yōu)雅了,如果想要在 swagger 文檔上增加 xml 注解,簡(jiǎn)單粗暴的做法可以直接在 Controller.Action 頂部寫上注解信息。

接下來(lái)在 ValuesController 下的每一個(gè) Action 上都加上注解,下面就是修改后的 ValueController。

  1. [Route("api/[controller]")] 
  2.     [ApiController] 
  3.     public class ValuesController : ControllerBase 
  4.     { 
  5.         /// <summary> 
  6.         /// Get action method without any argument 
  7.         /// </summary> 
  8.         /// <returns></returns
  9.         [HttpGet] 
  10.         public ActionResult<IEnumerable<string>> Get() 
  11.         { 
  12.             return new string[] { "value1""value2" }; 
  13.         } 
  14.  
  15.         /// <summary> 
  16.         /// Get action method that accepts an integer as an argument 
  17.         /// </summary> 
  18.         /// <param name="id"></param> 
  19.         /// <returns></returns
  20.         [HttpGet("{id}")] 
  21.         public ActionResult<string> Get(int id) 
  22.         { 
  23.             return "value"
  24.         } 
  25.  
  26.         /// <summary> 
  27.         /// Post action method to add data 
  28.         /// </summary> 
  29.         /// <param name="value"></param> 
  30.         [HttpPost] 
  31.         public void Post([FromBody] string value) 
  32.         { 
  33.         } 
  34.  
  35.         /// <summary> 
  36.         /// Put action method to modify data 
  37.         /// </summary> 
  38.         /// <param name="id"></param> 
  39.         /// <param name="value"></param> 
  40.         [HttpPut("{id}")] 
  41.         public void Put(int id, [FromBody] string value) 
  42.         { 
  43.         } 
  44.  
  45.         /// <summary> 
  46.         /// Delete action method 
  47.         /// </summary> 
  48.         /// <param name="id"></param> 
  49.         [HttpDelete("{id}")] 
  50.         public void Delete(int id) 
  51.         { 
  52.         } 
  53.     } 

打開(kāi) xml 注解

值得注意的是:Swagger 默認(rèn)并不會(huì)顯示 XML 注解,需要手工打開(kāi)它,那怎么做呢?右鍵 Project,選擇 Properties 后切換到 Build 頁(yè)面,然后選中 XML documentation file 項(xiàng) 并且指定好 xml 生成的位置,參考如下:

接下來(lái)還要在 ConfigureServices 方法下將生成xml 的路徑配置到 swagger 中,如下代碼所示:

  1. c.IncludeXmlComments(@"D:\Projects\IDG\IDGSwaggerDemo\IDGSwaggerDemo\IDGSwaggerDemo.xml"); 

這就是打開(kāi) Swagger 中的 xml 注解 所需的所有事情。

指定啟動(dòng)url 到 Swagger UI

要想將啟動(dòng)項(xiàng)目的url指到 SwaggerUI,右鍵 Project 并選擇 Properties,在 Debug 的 Lanuch browser 上指定 swagger 即可,如下圖所示:

再次運(yùn)行程序可以發(fā)現(xiàn)默認(rèn)頁(yè)就是 Swagger URL 了,如下圖所示:

從圖中可以看到,5個(gè)API方法后面都有相應(yīng)的 xml 注解了。

Swashbuckle 是一個(gè)非常好的工具,可以簡(jiǎn)單粗暴的給 API接口生成文檔,從文中也可以看出 Swashbuckle 的配置非常簡(jiǎn)單,Swagger 還有一些更高級(jí)的功能,比如通過(guò) CSS 來(lái)定制 Swagger UI,還可以根據(jù)API的版本生成不同的 Swagger 文檔,后續(xù)的文章還會(huì)跟大家介紹更多高級(jí)的功能。

譯文鏈接:https://www.infoworld.com/article/3400084/how-to-use-swagger-in-aspnet-core.html

 

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)讀書(shū)
相關(guān)推薦

2021-02-06 21:40:13

SignalR通訊TypeScript

2021-03-17 09:45:31

LazyCacheWindows

2021-02-02 16:19:08

Serilog日志框架

2021-01-31 22:56:50

FromServiceASP

2021-02-28 20:56:37

NCache緩存框架

2021-02-03 13:35:25

ASPweb程序

2021-03-10 09:40:43

LamarASP容器

2021-03-03 22:37:16

MediatR中介者模式

2021-01-28 22:39:35

LoggerMessa開(kāi)源框架

2021-02-07 17:29:04

監(jiān)視文件接口

2021-06-22 16:59:56

微軟.NETC# 軟件開(kāi)發(fā)

2021-01-26 14:57:00

中間件應(yīng)用模塊化

2021-01-04 05:44:54

框架日志

2021-04-12 07:03:10

輕量級(jí)模塊化框架

2017-10-20 08:52:11

內(nèi)存緩存并發(fā)模式Linux

2022-08-01 08:00:00

開(kāi)發(fā)工具跟蹤偵聽(tīng)器

2009-02-05 14:02:46

SmtpMail發(fā)送郵件ASP.NET

2021-04-14 07:35:12

Json格式化日期

2021-11-01 14:52:38

ElasticSear索引SQL

2024-09-10 08:15:33

Asp項(xiàng)目API
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

免费观看不卡av| 成人免费网站视频| 成人美女在线视频| 国产99久久精品一区二区 夜夜躁日日躁| 中文字幕第24页| 日韩在线观看一区二区三区| 日本韩国视频一区二区| 亚洲成年人专区| 免费在线高清av| 国产一区二区不卡在线| 57pao精品| 国模无码国产精品视频| 精品日本12videosex| 精品国产91久久久久久久妲己 | 成人性生交大片免费看在线播放| 2024国产精品视频| 91色精品视频在线| 国产免费a视频| 亚洲精品1234| 久久视频在线免费观看| 在线免费看黄视频| 国产伦理久久久久久妇女| 欧美亚洲一区三区| 日韩在线视频在线观看| 在线观看中文| 成人免费小视频| 日韩欧美精品在线不卡 | 国产91丝袜在线播放九色| 日韩免费av片在线观看| 国产无遮挡aaa片爽爽| 婷婷综合激情| 中文字幕亚洲综合久久| 国产中年熟女高潮大集合| 国产乱人伦丫前精品视频| 日韩无一区二区| 亚洲欧美手机在线| 国产乱子精品一区二区在线观看| 色综合久久久久久久| 欧美视频在线观看视频 | 欧美一级免费看| 久久精品久久国产| 午夜精品999| xxxxx成人.com| 中文字幕在线观看二区| 精品日韩欧美一区| 国产亚洲精品美女| 蜜桃传媒一区二区亚洲| 亚洲成aⅴ人片久久青草影院| 精品国产一区二区三区不卡| 精品人妻一区二区三区免费| 在线观看欧美| 91精品久久久久久久91蜜桃| 欧美激情国内自拍| 国产日韩欧美中文在线| 91精品蜜臀在线一区尤物| 久久久精品高清| 欧美h版在线观看| 制服丝袜成人动漫| 亚洲网中文字幕| 亚洲高清在线一区| 精品欧美乱码久久久久久1区2区| 亚洲成人精品在线播放| baoyu135国产精品免费| 精品国产一区二区三区久久久蜜月 | 日本午夜在线观看| 欧美另类综合| 97超碰蝌蚪网人人做人人爽| 国产无套丰满白嫩对白| 首页国产欧美日韩丝袜| 国产精品美女免费视频| 91精品国产乱码久久久| 国产精品一区二区在线播放 | 秋霞网一区二区| 99热在这里有精品免费| 欧洲一区二区在线观看| 色欧美激情视频在线| 亚洲视频一区二区在线| 亚洲国产精品成人天堂| jizz内谢中国亚洲jizz| 欧美日韩午夜影院| 色哟哟在线观看视频| 国产三级精品三级在线观看国产| 日韩精品在线播放| 天天舔天天操天天干| 国产精品久久久久蜜臀| 久久久久久噜噜噜久久久精品| 99热国产在线观看| 奇米影视在线99精品| 999久久久| 蜜芽tv福利在线视频| 国产精品福利电影一区二区三区四区| www成人免费| 成人欧美大片| 日韩精品一区二区三区四区| 亚洲av无码国产精品久久| 91麻豆国产自产在线观看亚洲| 欧美激情一二区| 波多野结衣视频观看| 国产大片一区二区| 品久久久久久久久久96高清| av文字幕在线观看| 欧美视频在线看| 亚洲第一天堂久久| 亚洲成a人片77777在线播放 | 四虎一区二区| 女人黄色免费在线观看| 欧美怡红院视频| 精品一区二区三区四区五区六区| 色婷婷热久久| 欧美有码在线视频| 国产av无码专区亚洲a∨毛片| 2022国产精品视频| 超碰人人爱人人| 国产精品诱惑| 亚洲人成在线一二| 久久久一二三区| 久久成人精品无人区| 久久久久欧美| 精品日韩av| 宅男在线国产精品| 九九热免费在线| 国产精品五区| 狠狠色综合欧美激情| 亚洲性图自拍| 欧美另类z0zxhd电影| 受虐m奴xxx在线观看| 1000部精品久久久久久久久| 亚洲在线www| 日日夜夜精品一区| 欧美色涩在线第一页| 欧美一区二区三区成人精品| 黄色免费成人| 粉嫩高清一区二区三区精品视频 | 国产一区二区三区四区二区| 97在线日本国产| 国内爆初菊对白视频| 亚洲色图欧美偷拍| 99国产精品久久久久久| 久久电影院7| 国产在线一区二区三区| 一级毛片视频在线| 欧美日韩亚洲国产综合| 国产毛片欧美毛片久久久| 鲁大师成人一区二区三区| 久久99国产精品99久久| 深夜av在线| 日韩av影院在线观看| 懂色av.com| www.久久久久久久久| 天堂…中文在线最新版在线| 成人搞黄视频| 亚州精品天堂中文字幕| 五月婷婷深深爱| 日韩欧美精品在线观看| 免费看黄色的视频| 日韩中文字幕不卡| 视频在线精品一区| 日韩精品第二页| 美女福利精品视频| 国产高清免费在线观看| 一片黄亚洲嫩模| av网页在线观看| 老司机久久99久久精品播放免费| 欧美日韩国产综合在线| 日韩欧美精品一区二区综合视频| 在线看日韩欧美| 亚洲熟妇无码久久精品| 亚洲欧美日韩一区二区三区在线观看| 天天色天天干天天色| 黄色精品免费| 欧美日韩国产一二| 亚洲毛片在线免费| 欧美激情欧美激情在线五月| 性xxxx视频| 欧美色欧美亚洲另类二区| 五月天色婷婷丁香| 国产成人精品影视| 97成人在线观看视频| 第一sis亚洲原创| av一区二区三区免费| 国产传媒在线观看| 日韩在线观看免费网站| 精品人妻伦一区二区三区久久| 欧美日韩国产一区二区| 久久视频精品在线观看| 国产高清不卡一区| 成人在线观看a| 亚洲成人国产| 久久久久久久有限公司| crdy在线观看欧美| 91精品91久久久久久| 午夜不卡视频| 日韩高清a**址| 一区二区三区亚洲视频| 午夜精品一区二区三区免费视频 | 色综合久久一区二区三区| 超碰在线97av| 电影在线观看一区二区| 久久久久久国产| 91xxx在线观看| 亚洲精品国精品久久99热| 91国产精品一区| 欧美日韩中文字幕在线视频| 国产精品嫩草影院俄罗斯| 91丨porny丨在线| 永久看看免费大片| 捆绑紧缚一区二区三区视频 | 久久精品国产秦先生| 国产中文字幕二区| 亚洲精品二区三区| 日韩国产一区久久| 欧美变态网站| 99久久伊人精品影院| 激情亚洲小说| 欧美最猛性xxxxx免费| 欧美黑人猛交的在线视频| 中文字幕日韩欧美精品在线观看| 亚洲欧洲成人在线| 欧美大肚乱孕交hd孕妇| 91麻豆成人精品国产免费网站| 欧美性猛交xxxxx免费看| 国产亚洲精品久久久久久打不开| 中文字幕电影一区| 国产美女喷水视频| 北条麻妃国产九九精品视频| 久久久久久久久久毛片| 蜜桃精品视频在线| 丰满少妇在线观看| 亚洲欧美网站| 一女被多男玩喷潮视频| 亚洲第一黄色| 少妇大叫太大太粗太爽了a片小说| 欧美电影三区| 亚洲日本欧美在线| 精品视频网站| 亚洲免费久久| 欧美日韩激情在线一区二区三区| 欧美高清视频一区二区三区在线观看 | 在线欧美一区| r级无码视频在线观看| 国产精品草草| 国产欧美日韩小视频| 欧美日本久久| 国产肉体ⅹxxx137大胆| 国产精品mm| 日韩精品在线观看av| 国产精品v日韩精品v欧美精品网站| 男女啪啪的视频| 91精品一区二区三区综合在线爱| 在线观看成人av电影| 五月天久久久| 国产午夜精品视频一区二区三区| 欧美99久久| 又大又硬又爽免费视频| 亚洲国产清纯| 成人av一级片| 日韩精品免费专区| 国产探花在线看| 国产在线观看免费一区| 农村末发育av片一区二区| 成人av动漫在线| 日韩人妻无码一区二区三区| 国产三级一区二区三区| 国产三级黄色片| 亚洲免费观看高清在线观看| 国产亚洲欧美精品久久久www| 亚洲第一久久影院| 日本天堂网在线| 欧美日韩亚洲综合| 好吊色一区二区三区| 日韩精品在线第一页| av网页在线| 久久91超碰青草是什么| 涩涩av在线| 91精品国产自产在线| 51vv免费精品视频一区二区| 久精品国产欧美| 欧美xxxxx视频| 国产黄色片免费在线观看| 久久夜色精品| 色姑娘综合天天| 久久久久高清精品| 日韩一区二区不卡视频| 精品美女久久久久久免费| 中文字幕人妻色偷偷久久| 日韩欧美亚洲一区二区| 天堂中文在线资| 久久久成人av| 中文一区一区三区高中清不卡免费| 国产乱肥老妇国产一区二 | 日韩精品视频免费播放| 欧美三级日韩三级| 蜜桃91麻豆精品一二三区 | 啦啦啦中文在线观看日本| 国产va免费精品高清在线| 麻豆国产一区| 日韩欧美一区二区三区久久婷婷| 一区二区三区四区在线观看国产日韩| 黄在线观看网站| 国产精品综合网| 国产一区二区三区四区在线| 性久久久久久久久久久久| 国产精品久久久久久久免费看 | 国产精品.com| 国产精品99在线观看| 中文字幕无码不卡免费视频| 国产宾馆实践打屁股91| 日本成人免费在线观看 | 国产精品视频一二区| 亚洲美女动态图120秒| 日本动漫理论片在线观看网站| 国产精品久久久久不卡| 欧亚精品一区| 国产乱人伦精品一区二区三区| 蜜桃视频一区二区| 亚洲精品国产91| 欧美三级xxx| 色一情一乱一乱一区91av| 久久九九精品99国产精品| free欧美| 欧美婷婷久久| 香蕉av777xxx色综合一区| 一级黄色片毛片| 亚洲一区二区精品久久av| 国产免费高清av| 久久亚洲私人国产精品va| 精品国产黄a∨片高清在线| 美女亚洲精品| 亚洲综合99| 国产精品无码在线| 亚洲v精品v日韩v欧美v专区| 亚洲黄色在线免费观看| 美日韩精品免费视频| 久久久久久久久久久久电影| 二级片在线观看| 久久99精品久久久| 女人18毛片毛片毛片毛片区二 | 欧洲成人免费aa| 任你弄精品视频免费观看| 日本在线xxx| av激情亚洲男人天堂| 国产成人在线免费视频| 亚洲国产91色在线| 国产不卡人人| 欧美欧美一区二区| 免费观看日韩电影| 免费成人美女女在线观看| 欧美高清dvd| a天堂中文在线官网在线| 99国产视频| 在线欧美福利| 性欧美精品中出| 精品视频在线免费| 成人在线播放免费观看| 99精彩视频在线观看免费| 激情综合在线| 亚洲专区区免费| 欧美性一区二区| 黄色av电影在线播放| 99电影网电视剧在线观看| 亚洲精品欧洲| 最近中文字幕免费| 欧美日韩免费不卡视频一区二区三区| 日本免费在线观看| 国产高清在线一区| 国产视频一区三区| 丁香激情五月少妇| 欧美一区二区三区在线视频| 欧美大成色www永久网站婷| 中日韩一级黄色片| 69成人精品免费视频| 视频在线观看入口黄最新永久免费国产| 成人三级视频在线观看一区二区| 亚洲调教视频在线观看| 亚洲一区二区观看| 欧美日韩久久久| 免费av不卡在线观看| 欧美日韩最好看的视频| 紧缚捆绑精品一区二区| 久久精品一区二区三| 国产视频在线观看一区二区| 精品自拍视频| 日本精品久久久久久久久久| 国产午夜精品一区二区三区视频 | 成人短视频app| 中文字幕在线亚洲三区| 成人av先锋影音| 在线观看亚洲一区二区| 欧美夫妻性生活xx| 狠狠操综合网| 国产午夜在线一区二区三区| 日本精品一级二级| 欧美女同一区| 性欧美大战久久久久久久免费观看| 国产91精品久久久久久久网曝门| 亚洲无码精品一区二区三区| 国内成人精品一区| 午夜影院欧美| 免费看黄色的视频| 精品久久人人做人人爽|