.NET Core 3.1使用Swagger
阿新 • • 發佈:2022-01-11
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介面