成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 ASP.Net Core 中使用 Swagger

開發 開發工具
大家在開發完 webapi 后,經常為了方便接口雙方對接,需要將 webapi 接口文檔化,那有沒有什么快捷可交互的文檔呢?可以利用快捷工具 Swagger,它的可視化 UI 可輕松助你 API 文檔化的同時還方便測試 API。

[[374264]]

本文轉載自微信公眾號「碼農讀書」,作者碼農讀書 。轉載本文請聯系碼農讀書公眾號。

大家在開發完 webapi 后,經常為了方便接口雙方對接,需要將 webapi 接口文檔化,那有沒有什么快捷可交互的文檔呢?可以利用快捷工具 Swagger,它的可視化 UI 可輕松助你 API 文檔化的同時還方便測試 API。

Swashbuckle 就是一個用于生成 Swagger 文檔的開源工具包,這篇文章將會討論如何利用 Swashbuckle 來為你的 Restful API 生成可交互的文檔。

安裝 Swagger 中間件

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

  1. dotnet add package Swashbuckle.AspNetCore 

配置 Swagger 中間件

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

  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.            }); 

接下來就要啟動 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

現在我們運行一下應用程序來瀏覽一下 Swagger UI 地址,可以看到 UI 界面如下圖所示,圖中不同的 Http 請求使用了不同的顏色進行標識,你甚至可以在UI上直接測試不同的 api 接口。

在 Action 方法上創建xml注解

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

接下來在 ValuesController 下的每一個 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.     } 

打開 xml 注解

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

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

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

這就是打開 Swagger 中的 xml 注解 所需的所有事情。

指定啟動url 到 Swagger UI

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

再次運行程序可以發現默認頁就是 Swagger URL 了,如下圖所示:

從圖中可以看到,5個API方法后面都有相應的 xml 注解了。

Swashbuckle 是一個非常好的工具,可以簡單粗暴的給 API接口生成文檔,從文中也可以看出 Swashbuckle 的配置非常簡單,Swagger 還有一些更高級的功能,比如通過 CSS 來定制 Swagger UI,還可以根據API的版本生成不同的 Swagger 文檔,后續的文章還會跟大家介紹更多高級的功能。

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

 

責任編輯:武曉燕 來源: 碼農讀書
相關推薦

2021-03-17 09:45:31

LazyCacheWindows

2021-02-02 16:19:08

Serilog日志框架

2021-02-06 21:40:13

SignalR通訊TypeScript

2021-03-10 09:40:43

LamarASP容器

2021-02-03 13:35:25

ASPweb程序

2021-02-28 20:56:37

NCache緩存框架

2021-03-03 22:37:16

MediatR中介者模式

2021-01-28 22:39:35

LoggerMessa開源框架

2021-01-31 22:56:50

FromServiceASP

2021-02-07 17:29:04

監視文件接口

2021-06-22 16:59:56

微軟.NETC# 軟件開發

2021-01-26 14:57:00

中間件應用模塊化

2021-04-12 07:03:10

輕量級模塊化框架

2021-01-04 05:44:54

框架日志

2017-10-20 08:52:11

內存緩存并發模式Linux

2022-08-01 08:00:00

開發工具跟蹤偵聽器

2009-02-05 14:02:46

SmtpMail發送郵件ASP.NET

2021-04-14 07:35:12

Json格式化日期

2021-11-01 14:52:38

ElasticSear索引SQL

2009-03-30 10:34:03

ASP.NETMySQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩久久久久久久久久久 | 久久99精品视频 | 中文字幕国产精品 | aaa大片免费观看 | 亚洲国产一区在线 | 久久久精品视频免费看 | 国产视频福利 | 久久久久久精 | 久久久91精品国产一区二区三区 | 久久成人一区 | 欧美a在线看 | 99久久国产免费 | 国产在线看片 | av中文字幕在线观看 | 国产一二区视频 | 久久伊人精品 | 一级做a| 亚洲激情综合 | 久久99精品久久久久久国产越南 | 蜜臀久久| 欧美精品1区2区3区 精品国产欧美一区二区 | 成年人视频在线免费观看 | www.夜夜骑.com| 欧美片网站免费 | 成人国产精品入口免费视频 | 大伊人久久 | 国产一级在线 | 精品真实国产乱文在线 | 久久成人激情 | 91精品国产综合久久福利软件 | 在线观看你懂的网站 | 欧美一级二级视频 | 福利视频网站 | 伦理一区二区 | 成人午夜黄色 | 成人免费观看视频 | 天天想天天干 | 国产视频福利在线观看 | 一本色道精品久久一区二区三区 | 综合色久 | 成人欧美一区二区三区黑人孕妇 |