1. 程式人生 > 其它 >.NET Core 3.1使用Swagger

.NET Core 3.1使用Swagger

1. 安裝Swashbuckle.AspNetCore

在VS開啟 NuGet 下載安裝 Swashbuckle.AspNetCore :工具 → NuGet包管理器 → 管理解決方案的NuGet程式包 → 輸入Swashbuckle搜尋 →點選下載

檢視Swashbuckle.AspNetCore版本 :專案依賴項 →包 → Swashbuckle.AspNetCore版本

2. Startup類ConfigureServices注入Swagger服務

程式碼:

public void ConfigureServices(IServiceCollection services)
{
           // 新增Swagger
            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
                // 獲取xml檔名
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                // 獲取xml檔案路徑
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                // 新增控制器層註釋,true表示顯示控制器註釋
                options.IncludeXmlComments(xmlPath, true);
            });
}

3. Startup類ConfigureServices新增Swagger中介軟體

程式碼:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
            // 新增Swagger有關中介軟體
                app.UseSwagger();
                app.UseSwaggerUI(c =>
                {
                    c.SwaggerEndpoint("/swagger/v1/swagger.json", "coreMVC3.1");
                    //c.RoutePrefix = string.Empty;
                    c.RoutePrefix = "API";     //如果是為空 訪問路徑就為 根域名/index.html,注意localhost:埠號/swagger是訪問不到的
                                               //路徑配置,設定為空,表示直接在根域名(localhost:8001)訪問該檔案
                                               // c.RoutePrefix = "swagger"; // 如果你想換一個路徑,直接寫名字即可,比如直接寫c.RoutePrefix = "swagger"; 則訪問路徑為 根域名/swagger/index.html

                });
}

5. 新增控制器

6. 生成XML檔案:

專案右鍵,選擇屬性,生成,勾選“XML文件檔案”,如下圖所示(配置:本地(Debug),這個配置僅為本地除錯)

僅僅這個配置在釋出環境訪問Swagger會報錯,所以配置要選擇Release也要配置生成XML文件檔案

本地環境:

釋出環境:

執行程式Swagger介面