This is an automated email from the ASF dual-hosted git repository.

xiaoyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new 8b7570d20 Swagger add header parameter token (#3227)
8b7570d20 is described below

commit 8b7570d209d76ff4d0287f53fd2425362a770399
Author: AhahaGe <[email protected]>
AuthorDate: Thu Apr 14 11:30:12 2022 +0800

    Swagger add header parameter token (#3227)
---
 .../shenyu/admin/config/SwaggerConfiguration.java  | 65 +++++++++++++++++-----
 1 file changed, 50 insertions(+), 15 deletions(-)

diff --git 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/SwaggerConfiguration.java
 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/SwaggerConfiguration.java
index 8b94d4a10..2afe526ae 100644
--- 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/SwaggerConfiguration.java
+++ 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/config/SwaggerConfiguration.java
@@ -17,15 +17,21 @@
 
 package org.apache.shenyu.admin.config;
 
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.shenyu.common.constant.Constants;
 import org.apache.shenyu.common.utils.VersionUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.ParameterBuilder;
 import springfox.documentation.builders.PathSelectors;
 import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.schema.ModelRef;
 import springfox.documentation.service.ApiInfo;
 import springfox.documentation.service.Contact;
+import springfox.documentation.service.Parameter;
 import springfox.documentation.spi.DocumentationType;
 import springfox.documentation.spring.web.plugins.Docket;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
@@ -36,13 +42,31 @@ import 
springfox.documentation.swagger2.annotations.EnableSwagger2;
 @Configuration
 @EnableSwagger2
 public class SwaggerConfiguration {
-    
+
+    private static final String DEFAULT_SWAGGER_API_VERSION = "2.3.0";
+
+    private static final String TITLE = "ShenYu Admin API Document";
+
+    private static final String DESCRIPTION = "ShenYu Admin API";
+
+    private static final String CONTACT_NAME = "ShenYu";
+
+    private static final String CONTACT_URL = 
"https://github.com/apache/incubator-shenyu";;
+
+    private static final String CONTACT_EMAIL = "[email protected]";
+
+    private static final String TOKEN_DESCRIPTION = "user auth";
+
+    private static final String TOKEN_MODEL_REF_TYPE = "string";
+
+    private static final String TOKEN_PARAMETER_TYPE = "header";
+
     @Value("${shenyu.swagger.enable:false}")
     private boolean enable;
-    
+
     public SwaggerConfiguration() {
     }
-    
+
     /**
      * Configure The Docket with Swagger.
      *
@@ -50,15 +74,27 @@ public class SwaggerConfiguration {
      */
     @Bean
     public Docket createRestApi() {
+        ParameterBuilder commonParam = new ParameterBuilder();
+
+        // X-Access-Token
+        List<Parameter> pars = new ArrayList<>();
+        commonParam.name(Constants.X_ACCESS_TOKEN)
+            .description(TOKEN_DESCRIPTION)
+            .modelRef(new ModelRef(TOKEN_MODEL_REF_TYPE))
+            .parameterType(TOKEN_PARAMETER_TYPE)
+            .required(false);
+        pars.add(commonParam.build());
+
         return new Docket(DocumentationType.SWAGGER_2)
-                .apiInfo(this.apiInfo())
-                .enable(enable)
-                .select()
-                
.apis(RequestHandlerSelectors.basePackage("org.apache.shenyu.admin.controller"))
-                .paths(PathSelectors.any())
-                .build();
+            .apiInfo(this.apiInfo())
+            .enable(enable)
+            .globalOperationParameters(pars)
+            .select()
+            
.apis(RequestHandlerSelectors.basePackage("org.apache.shenyu.admin.controller"))
+            .paths(PathSelectors.any())
+            .build();
     }
-    
+
     /**
      * Fetch version information from pom.xml and set title, version, 
description,
      * contact for Swagger API document.
@@ -67,10 +103,9 @@ public class SwaggerConfiguration {
      */
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
-                .title("Shenyu Admin API Document")
-                .description("")
-                .version(VersionUtils.getVersion(getClass(), "2.3.0"))
-                .contact(new Contact("shenyu", 
"https://github.com/apache/incubator-shenyu";, ""))
-                .build();
+            .title(TITLE).description(DESCRIPTION)
+            .version(VersionUtils.getVersion(getClass(), 
DEFAULT_SWAGGER_API_VERSION))
+            .contact(new Contact(CONTACT_NAME, CONTACT_URL, CONTACT_EMAIL))
+            .build();
     }
 }

Reply via email to