Swagger的基礎使用可以參考之前的文章:.Net Core 5.x Api開發筆記 -- Swagger(七)
這里只記錄如何給Swagger添加Header,要達到的效果如下圖所示:

1,添加 HttpHeaderFilter 引數設定類
在專案中添加一個引數設定類,命名自定義就行,如下圖所示:

代碼如下:
1 public class HttpHeaderFilter : IOperationFilter 2 { 3 /// <summary> 4 /// 給Swagger添加Header頭部引數 5 /// </summary> 6 /// <param name="operation"></param> 7 /// <param name="context"></param> 8 public void Apply(OpenApiOperation operation, OperationFilterContext context) 9 { 10 operation.Parameters = new List<OpenApiParameter> 11 { 12 new OpenApiParameter 13 { 14 Name = "token", 15 Description = "Token", 16 In = ParameterLocation.Header, 17 Required = false 18 }, 19 new OpenApiParameter 20 { 21 Name = "TermID", 22 Description = "學期ID", 23 In = ParameterLocation.Header, 24 Required = false 25 }, 26 new OpenApiParameter 27 { 28 Name = "ContainerID", 29 Description = "組織ID", 30 In = ParameterLocation.Header, 31 Required = false 32 } 33 }; 34 } 35 }
引數說明:
Name:就是設定header的欄位屬性名稱,在同一個引數位置,名稱必須唯一,且大小寫敏感,
In:引數位置,常見有三個:
- path:引數成為操作路徑(URL)的一部分,俗稱路徑引數,路徑引數的
required欄位必需為true - query:引數成為操作路徑(URL)查詢引數的一部分,俗稱查詢引數,如
/users?id=123456 - header:引數成為 HTTP 請求頭的一部分,俗稱請求頭引數,注意:請求頭是大小寫敏感的
Required:是否必需,默認值是 false
我們按照 In:引數位置的型別分別設定成 Header、Query、Path,看是什么效果

2, 使用引數設定類 HttpHeaderFilter
上邊的引數類已經創建好,下邊看下如何使用、使用很簡單,代碼如下(加紅標粗的代碼部分)
1 public void ConfigureServices(IServiceCollection services) 2 { 3 services.AddControllers(); 4 5 //swagger 6 services.AddSwaggerGen(options => 7 { 8 options.SwaggerDoc("swaggerapi", new OpenApiInfo 9 { 10 Version = "v1", 11 Title = "swaggerapi API檔案", 12 Description = "swaggerapi API的使用說明" 14 }); 15 16 // 為 Swagger JSON and UI設定xml檔案注釋路徑 17 // 獲取應用程式所在目錄(絕對路徑,不受作業目錄影響,建議采用此方法獲取路徑) 18 // 此方式適用于Windows/Linux 平臺 19 var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location); 20 var xmlPath = Path.Combine(basePath, "NetCore.Swagger.xml"); 21 options.IncludeXmlComments(xmlPath); 22 23 //添加自定義header授權引數 24 options.OperationFilter<HttpHeaderFilter>(Array.Empty<object>()); 25 }); 26 }
完畢!!!
作者:PeterZhang 出處:https://www.cnblogs.com/peterzhang123 本文著作權歸作者和博客園共有,歡迎轉載,但必須給出原文鏈接,并保留此段宣告,否則保留追究法律責任的權利,轉載請註明出處,本文鏈接:https://www.uj5u.com/net/492429.html
標籤:.NET Core
