Swagger能成為最受歡迎的REST APIs文檔生成工具之一,有以下幾個原因:
- Swagger 可以生成一個具有互動性的API控制台,開發者可以用來快速學習和嘗試API。
- Swagger 可以生成客戶端SDK代碼用於各種不同的平台上的實現。
- Swagger 文件可以在許多不同的平台上從代碼注釋中自動生成。
- Swagger 有一個強大的社區,里面有許多強悍的貢獻者。
反正就是很6,很棒棒,我平常接口開發都會用到Swagger,感覺挺方便,不用怎么寫文檔就可以快速的和前端完成對接(我在實際開發和聯調的時候還會配合用到Postman和fiddler等接口調試工具,都很好用,在這里推薦一下,用法我就不做解釋了 )
但是今天在.net core環境先配置swagger的時候遇到了一個小坑,配置網上有很多資料,
可以參考 https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?view=aspnetcore-2.1
第一步、
Nuget Packages安裝,使用程序包管理器控制台,安裝命令:Install-Package Swashbuckle.AspNetCore -Pre
第二步、
在Startup 文件中添加配置:
public void ConfigureServices(IServiceCollection services) {// Add framework services. services.AddMvc() .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver());//JSON首字母小寫解決 services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new Info { Version = "v1", Title = "MsSystem API" }); //Determine base path for the application. var basePath = PlatformServices.Default.Application.ApplicationBasePath; //Set the comments path for the swagger json and ui. var xmlPath = Path.Combine(basePath, "MsSystem.API.xml"); options.IncludeXmlComments(xmlPath); }); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } //app.UseStaticFiles(); app.UseMvc(); //app.UseMvc(routes => //{ // routes.MapRoute( // name: "default", // template: "api/{controller}/{action}", // defaults: new { controller = "Home", action = "Index" }); //}); app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "MsSystem API V1"); }); }
然后直接訪問地址 http://localhost:端口號/swagger/,但是發現報錯了
這里我們還需要配置一下生成的輸出目錄
右鍵項目》屬性》生成 ,看到如下界面,勾選xml文檔文件,然后按如下圖輸入配置,此處的MsSystem.API.xml即為上面代碼中名字
然后大功告成,F5運行如圖