ASP.NET Core 2.2 系列【四】集成Swagger

Swagger

是一款自動生成在線接口文檔+功能測試功能軟件json

1、安裝程序包

經過管理 NuGet 程序包安裝,搜索Swashbuckle.AspNetCore瀏覽器

2、配置 Swagger

將 Swagger 添加到 Startup.ConfigureServices 方法中的服務集合中:app

            //注入Swagger服務
            services.AddSwaggerGen(c =>
            {
                    c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
            });

在 Startup.Configure 方法中,啓用中間件爲生成的 JSON 文檔和 Swagger UI 提供服務測試

            //啓用Swagger服務
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
                c.DefaultModelsExpandDepth(-1); //設置爲 - 1 可不顯示models
                c.DocExpansion(DocExpansion.None); //設置爲none可摺疊全部方法
            });

 

運行項目,可在 http://localhost:<port>/swagger 瀏覽 API文檔,以下所示:spa

若是想把Swagger做爲啓動頁面,可修改launchSettings.json,把  launchUrl設置爲  swagger:code

    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true, //是否在瀏覽器中啓動
      "launchUrl": "swagger", //在瀏覽器中啓動的相對URL
      "environmentVariables": { //將環境變量設置爲鍵/值對
        "ASPNETCORE_ENVIRONMENT": "Development"
      }

 

全部的Controller 的方法都是能夠在 UI 上面進行測試。點擊方法能夠展開對應的區域,點擊【Try it out】→ 【輸入參數】→ 點擊【Execute】。xml

3、可擴展性

Swagger 文檔信息和描述

修改AddSwaggerGen 方法,用來添加文檔信息。例如:做者,版權,描述。中間件

            services.AddSwaggerGen(option =>
            {
                option.SwaggerDoc("v1", new Info
                {
                    Version = "v1",
                    Title = "在線接口文檔",
                    Description = "一個簡單的例子",
                    Contact = new Contact { Name = "TengHao", Email = "tenghao510@qq.com" },
                    License = new License { Name = "博客地址", Url = "https://www.cnblogs.com/tenghao510/" }
                });
            });

 

下圖展現了 Swagger UI 顯示添加的版本信息。blog

XML註釋

【右鍵項目】→【屬性】→ 【生成】→ 【勾選XML 文檔文件】注意本身的路徑接口

修改AddSwaggerGen 方法。

備註:IncludeXmlComments方法中的includeControllerXmlComments參數控制是否顯示控制器註釋,默認是false。

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info
                {
                    Version = "v1",
                    Title = "在線接口文檔",
                    Description = "一個簡單的例子",
                    Contact = new Contact { Name = "TengHao", Email = "tenghao510@qq.com" },
                    License = new License { Name = "TengHao", Url = "https://www.cnblogs.com/tenghao510/" }
                });
                // 爲 Swagger JSON and UI設置xml文檔註釋路徑
                var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//獲取應用程序所在目錄
                var xmlPath01 = Path.Combine(basePath, "NetCoreWebApi.xml");
                c.IncludeXmlComments(xmlPath01, true);
                var xmlPath = Path.Combine(basePath, "NetCoreWebApi.Model.xml");
                c.IncludeXmlComments(xmlPath);
            });

 

運行項目,再看看效果:

相關文章
相關標籤/搜索