asp.net core 一個中小型項目實戰的起手式——Swagger配置

来源:https://www.cnblogs.com/invoker-Fv/archive/2019/08/22/11393582.html

一、Swagger是什麼 Swagger 是一款RESTFUL介面的、基於YAML、JSON語言的文檔線上自動生成、代碼自動生成的工具。 二、如何在項目中加入Swagger Swagger安裝引用 右鍵Web項目依賴項>管理NuGet程式包>在搜索框輸入"Swashbuckle.AspNetCore ...


一、Swagger是什麼

Swagger 是一款RESTFUL介面的、基於YAML、JSON語言的文檔線上自動生成、代碼自動生成的工具。

 

二、如何在項目中加入Swagger

  • Swagger安裝引用

    右鍵Web項目依賴項>管理NuGet程式包>在搜索框輸入"Swashbuckle.AspNetCore",然後單擊安裝

      

    

  • 添加並配置Swagger中間件

    首先在Startup類中引入Swagger:

        using Swashbuckle.AspNetCore.Swagger;

    將 Swagger 生成器添加到ConfigureServices 方法中的服務集合中:

            //註冊Swagger生成器,定義一個和多個Swagger文檔
            services.AddSwaggerGen(p =>
            {
                p.SwaggerDoc("v1", new Info {Title = "數據管理器API文檔", Version = "V1"});
            });

 

    在Configure方法中,啟用中間件為生成的JSON文檔和SwaggerUI提供服務:

            //啟用中間件服務生成Swagger作為JSON終結點
            app.UseSwagger();
            //啟用中間件服務對swagger-ui,指定Swagger JSON終結點
            app.UseSwaggerUI(p =>
            {
                p.SwaggerEndpoint("/swagger/v1/swagger.json", "數據管理器API文檔 v1"); 
            });

    啟動應用,並跳轉到 http://localhost:<port>/swagger/v1/swagger.json 生成的描述終結點的文檔顯示如下json格式。

    

    可在 /swagger 找到 Swagger UI。 通過 Swagger UI 瀏覽 API文檔,如下所示。

 

  •  為介面方法提供註釋

  首先右鍵【解決方案資源管理器】中的項目,然後選【屬性】

  查看“生成”選項卡的【輸出】部分下的【XML 文檔文件】框

  啟用 XML 註釋後會為未記錄的公共類型和成員提供調試信息。如果出現很多警告信息  例如,以下消息指示違反警告代碼 1591。可以在進位顯示警告中加入警告代碼,這樣不會再在錯誤列表中顯示1591類型的警告了。

在Swagger註冊服務中增加:

            //註冊Swagger生成器,定義一個和多個Swagger文檔
            services.AddSwaggerGen(p =>
            {
                p.SwaggerDoc("v1", new Info {Title = "數據管理器API文檔", Version = "V1"});

                // 為 Swagger JSON and UI設置xml文檔註釋路徑
                var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//獲取應用程式所在絕對目錄
                var xmlPath = Path.Combine(basePath, "DataManager.Web.xml");//此處的文件名要對應到項目屬性中生成的xml文件名
                p.IncludeXmlComments(xmlPath);
            });

 

在控制器目錄下新增一個WebApi測試控制器,測試下效果

 

    [Route("api/[controller]/[action]")]
    [ApiController]
    public class SwaggerTestController : ControllerBase
    {
        /// <summary>
        /// 這是一個Swagger測試介面
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IActionResult Test()
        {
            return new JsonResult(new {key = "Name", value = "test"});
        }
    }

訪問/swagger:

好了,今天的在ASP.NET Core WebApi使用Swagger生成api說明文檔的教程就到這裡了。希望能夠對大家學習在ASP.NET Core中使用Swagger生成api文檔有所幫助!


您的分享是我們最大的動力!

更多相關文章
  • 本次應用DevExpress和C#語言製作了一個批量添加水印的程式,看界面效果圖: 界面中既可以進行文字水印添加,也可以圖片水印添加,同時還可以對水印的位置進行設置,比較實用! 文字水印的具體添加情況,看圖: 還可以文字的預覽: 整個文字水印的預覽: 同時圖片的水印預覽: 最後顯示下圖片的水印效果: ...
  • 摘要 本文將介紹如何通過VS2019創建Xamarin.Forms應用程式,以及如何進行調試。 前言 本文介紹Xamarin.Froms應用程式的創建和調試。 開發環境 1.Visual Studio 2019 2.Xamarin.Forms 3.6.0.344457 創建 1.打開VS2019,選 ...
  • 初學者經常碰到的,即獲取HTML元素集合,迴圈給元素添加事件。在事件響應函數中(event handler)獲取對應的索引。但每次獲取的都是最後一次迴圈的索引。原因是初學者並未理解JavaScript的閉包特性。 1. <!DOCTYPE HTML> 2. <html> 3. <head> 4. < ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 碼雲:https://gitee.com/kwwwvagaa/net_winform_custom_contr ...
  • 話不多說,上圖: 整體項目結構如圖所示,我的設計初衷是基於.netCore + DI + Vue 打造一個適合初學者的簡捷開發框架。 架構模型採用基於RESTful API風格的前後臺分離框架,總體分為五層:表示層(前端UI)、交互層、業務層、數據訪問層、數據存儲層。 項目中用到的技術如下圖所示: ...
一周排行
  • 首先給大家介紹一下序列化是用來乾什麼的,他為什麼出現 序列化這種技術說到底其實就是把臨時數據保存在電腦上。大家都知道對於程式而言對象是一種稍縱即逝的數據,不僅僅是程式重啟、電腦重啟,就連內部函數的變化也有可能導致對象的消失,但是總有一些對象是大家不想讓其隨意消失的並且想在下一次開啟程式的時候進行載入 ...
  • 一、前言 在.Net Framework框架有專門獲取webconfig配置的方法供我們使用,但是在.Net Core或者.Net Standard中沒有可以直接使用的方法來獲取配置文件信息,下麵就來實現獲取配置信息。 二、獲取配置信息的實現 在.Net Core中,他的配置信息的載體是一個json ...
  • 你一定看過這篇文章 《進擊的 Java ,雲原生時代的蛻變》, 本篇文章的靈感來自於這篇文章。北京時間9.24 就將正式發佈.NET Core 3.0, 所以寫下這篇文章讓大家全面認識.NET Core。.NET 生態系統是一個不斷變化的生態圈,我相信它正在朝著一個偉大的方向發展。正好 最近 Inf... ...
  • 參考文檔:Dapper one to many Table C Code pulic List GetPersons(){ var sql = @"SELECT 1 AS Id, 'Daniel Dennett' AS Name, 1942 AS Born, 1 AS CountryId, 'Uni ...
  • 非標設備多相機流水線模式緩存圖片(C/S客戶端,c 開發語言) ​ 本文所說流水線方式下存儲圖像是在軟體測量周期慢於圖片周期前提下講解的,如果軟體一直在等待圖片數據,邏輯就沒有那麼複雜。 1、非標設備項目,常規模式測量流程 常規模式下,相機採集圖像信號由上位機控制(無論軟觸發、硬觸發)。每個周期內的 ...
  • 簡單創建.NET Core WebApi:https://www.cnblogs.com/yanbigfeg/p/9197375.html 登陸驗證四種方式:https://www.cnblogs.com/zuowj/p/5123943.html 解決跨域的8種方法:https://blog.csd ...
  • 最近有個需求就是網頁表格裡面的數據導出到excel 於是從各位前輩的博客園搜了搜demo 大部分非為兩類 都是用的插件NPOI和Eppluse ,因此在這裡就介紹Eppluse 用法,還有就是在博客的時候 好多有留言說想看從資料庫裡面的數據進行導入 而不是寫死的,所以我就以我的案例給大家分享下用法( ...
  • 表達式樹練習實踐:C 值類型、引用類型、泛型、集合、調用函數 [TOC] 一,定義變數 C 表達式樹中,定義一個變數,使用 。 創建變數結點的方法有兩種, 兩種方式都是生成 類型 和 都具有兩個重載。他們創建一個 ParameterExpression節點,該節點可用於標識表達式樹中的參數或變數。 ...
  • 就像是.NET Framework WebApi與.NET Core WebApi一樣,.NET Framework MVC與.NET Core MVC的區別,也是框架的之間的區別。本系列先首先從.NET Framework MVC介紹,後面再去介紹.NET Core MVC 狹義MVC: MVC是 ...
  • 緩存的實現 我們不是做第三方比如Redis等的緩存實現,而是根據實際情況,基於C#上做一些環境變數的保存,方便項目使用。 1、系統全局變數 很多時候,在系統運行開始,需要對系統的運行參數進行保存,以便供全局使用。 代碼如下: 這裡使用一個靜態變數的Dictionary來進行保存,所有項目均可以直接獲 ...
x