溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Swagger 在asp.net core中的應(yīng)用2

發(fā)布時間:2020-06-13 00:46:59 來源:網(wǎng)絡(luò) 閱讀:2871 作者:桂素偉 欄目:編程語言

Swagger是一個把api和注釋生成一個可視(或可訪問)的輸出工具,關(guān)且還可以進行手工測試我們的api,解決了程序不想寫文檔的問題(哈哈)。

 

Swashbuckle.AspNetCore是用來解決asp.net core下的api文檔,不但能稱顯UI,還可以在UI上進行測試。

如果在asp.net core中使用swagger,首先在nuget下安裝Swashbuckle.AspNetCore,不過現(xiàn)在是預(yù)覽版,一定要把“包括預(yù)發(fā)行版”打上勾。

Swagger 在asp.net core中的應(yīng)用2

同時還要添加三個引用:

Swashbuckle.AspNetCore.SwaggerGen是生成Swagger文檔的組件

Swashbuckle.AspNetCore.Swagger:是把Swagger文檔生成Json Api的組件

Swashbuckle.AspNetCore.SwaggerUI,是把Json Api轉(zhuǎn)成頁面的組件

 

接下來設(shè)置項目屬性,生成-Output節(jié)點的XML documentation file打上勾,用來保證能把action上的注釋生成xml文檔。

同時,Controller中的action都要加http特性,這樣方例生成swagger文檔時能找到準確的api,這點很重要

接下來,就要在Starup中去調(diào)置Swagger的使用了

public void ConfigureServices(IServiceCollection services)
 {           
     services.AddMvc();
     services.AddSwaggerGen(c =>
     {
         c.SwaggerDoc("v1", new Info
         {
             Title = "Swagger測試",
             Version = "v1",
             Description = "Swagger測試RESTful API ",
             TermsOfService = "None",
             Contact = new Contact
             {
                 Name = "桂素偉",
                 Email = "axzxs2001@163.com"
             },
         });
         //設(shè)置xml注釋文檔,注意名稱一定要與項目名稱相同
         var filePath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "SwaggerDemo.xml");
         c.IncludeXmlComments(filePath);
         //處理復雜名稱
         c.CustomSchemaIds((type) => type.FullName);
     });
 }
      
 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
 {
     loggerFactory.AddConsole(Configuration.GetSection("Logging"));
     loggerFactory.AddDebug();
     app.UseMvc();
     app.UseSwagger(c =>
     {
         //設(shè)置json路徑
         c.RouteTemplate = "docs/{documentName}/swagger.json";
     });
     app.UseSwaggerUI(c =>
     {
         //訪問swagger UI的路由,如http://localhost:端口/docs
         c.RoutePrefix = "docs";
         c.SwaggerEndpoint("/docs/v1/swagger.json", "Swagger測試V1");
         //更改UI樣式
         c.InjectStylesheet("/swagger-ui/custom.css");
         //引入UI變更js
         c.InjectOnCompleteJavaScript("/swagger-ui/custom.js");
     });
 }

關(guān)于更多的UseSwagger參數(shù)和UseSwaggerUI參數(shù)可參考

https://github.com/domaindrivendev/Swashbuckle.AspNetCore

 

設(shè)置中的custom.css和custom.js如下

custom.css

.logo__title {
 font-weight:bold;
 font-size:0.8em;
}
custom.js
var titles=document.getElementsByClassName("logo__title");
titles[0].innerHTML = "Swagger測試";

關(guān)于美化UI可以運行,查看具體的html Elements,然后去寫css或js

Swagger 在asp.net core中的應(yīng)用2


代碼參考:https://github.com/axzxs2001/Asp.NetCoreExperiment

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI