13693261870
6 天以前 7d03fd7d726469278b5bd1b379f0303fa55b7c3e
解决API调试出错
已修改7个文件
已删除4个文件
393 ■■■■ 文件已修改
se-collect/src/main/resources/application-prod.yml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-common/src/main/java/com/terra/common/config/SpringDocAutoConfiguration.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-gateway/src/main/java/com/terra/gateway/config/SpringDocConfig.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-system/pom.xml 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-system/src/main/java/com/terra/system/config/MybatisPlusConfig.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-system/src/main/java/com/terra/system/config/WebConfig.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-system/src/main/java/com/terra/system/extend/CustomizedSqlInjector.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-system/src/main/java/com/terra/system/extend/InsertBatchMethod.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-system/src/main/java/com/terra/system/extend/UpdateBatchMethod.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-system/src/main/resources/application-prod.yml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sm.txt 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/resources/application-prod.yml
@@ -67,6 +67,23 @@
mybatis-plus:
  config-location: classpath:mybatis.xml
  mapper-locations: classpath:mapper/**/*.xml
# springdoc配置
springdoc:
  gatewayUrl: /${spring.application.name}
  api-docs:
    # æ˜¯å¦å¼€å¯æŽ¥å£æ–‡æ¡£
    enabled: true
  info:
    # æ ‡é¢˜
    title: '数据汇集接口文档'
    # æè¿°
    description: '数据汇集接口描述'
    # ä½œè€…信息
    contact:
      name: wuww
      url: https://www.smartearth.cn/
logging:
  config: classpath:logback.xml
se-common/src/main/java/com/terra/common/config/SpringDocAutoConfiguration.java
@@ -30,8 +30,8 @@
    {
        return new OpenAPI().components(new Components()
            // è®¾ç½®è®¤è¯çš„请求头
            .addSecuritySchemes("apikey", securityScheme()))
            .addSecurityItem(new SecurityRequirement().addList("apikey"))
            .addSecuritySchemes("token", securityScheme())) // apikey
            .addSecurityItem(new SecurityRequirement().addList("token")) // apikey
            .info(convertInfo(properties.getInfo()))
            .servers(servers(properties.getGatewayUrl()));
    }
@@ -39,9 +39,9 @@
    public SecurityScheme securityScheme()
    {
        return new SecurityScheme().type(SecurityScheme.Type.APIKEY)
            .name("Authorization")
            .in(SecurityScheme.In.HEADER)
            .scheme("Bearer");
                .name("token") // Authorization
                .in(SecurityScheme.In.HEADER)
                .scheme(""); // Bearer
    }
    private Info convertInfo(SpringDocProperties.InfoProperties infoProperties)
se-gateway/src/main/java/com/terra/gateway/config/SpringDocConfig.java
@@ -44,51 +44,49 @@
/**
 * Swagger文档注册器
 */
class SwaggerDocRegister extends Subscriber<InstancesChangeEvent>
{
class SwaggerDocRegister extends Subscriber<InstancesChangeEvent> {
    @Autowired
    private SwaggerUiConfigProperties swaggerUiConfigProperties;
    @Autowired
    private DiscoveryClient discoveryClient;
    private final static String[] EXCLUDE_ROUTES = new String[] { "se-gateway" };
    private final static String[] EXCLUDE_ROUTES = new String[]{"se-gateway"};
    public SwaggerDocRegister(SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient)
    {
    public SwaggerDocRegister(SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient) {
        this.swaggerUiConfigProperties = swaggerUiConfigProperties;
        this.discoveryClient = discoveryClient;
    }
    /**
     * äº‹ä»¶å›žè°ƒæ–¹æ³•,处理InstancesChangeEvent事件
     *
     * @param event äº‹ä»¶å¯¹è±¡
     */
    @Override
    public void onEvent(InstancesChangeEvent event)
    {
    public void onEvent(InstancesChangeEvent event) {
        Set<AbstractSwaggerUiConfigProperties.SwaggerUrl> swaggerUrlSet = discoveryClient.getServices()
            .stream()
            .flatMap(serviceId -> discoveryClient.getInstances(serviceId).stream())
            .filter(instance -> !StringUtils.equalsAnyIgnoreCase(instance.getServiceId(), EXCLUDE_ROUTES))
            .map(instance -> {
                AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = new AbstractSwaggerUiConfigProperties.SwaggerUrl();
                swaggerUrl.setName(instance.getServiceId());
                swaggerUrl.setUrl(String.format("/%s/v3/api-docs", instance.getServiceId()));
                return swaggerUrl;
            })
            .collect(Collectors.toSet());
                .stream()
                .flatMap(serviceId -> discoveryClient.getInstances(serviceId).stream())
                .filter(instance -> !StringUtils.equalsAnyIgnoreCase(instance.getServiceId(), EXCLUDE_ROUTES))
                .map(instance -> {
                    AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = new AbstractSwaggerUiConfigProperties.SwaggerUrl();
                    swaggerUrl.setName(instance.getServiceId());
                    swaggerUrl.setUrl(String.format("/%s/v3/api-docs", instance.getServiceId()));
                    return swaggerUrl;
                })
                .collect(Collectors.toSet());
        swaggerUiConfigProperties.setUrls(swaggerUrlSet);
    }
    /**
     * è®¢é˜…类型方法,返回订阅的事件类型
     *
     * @return è®¢é˜…的事件类型
     */
    @Override
    public Class<? extends Event> subscribeType()
    {
    public Class<? extends Event> subscribeType() {
        return InstancesChangeEvent.class;
    }
}
se-system/pom.xml
@@ -58,11 +58,11 @@
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>com.baomidou</groupId>-->
<!--            <artifactId>mybatis-plus-boot-starter</artifactId>-->
<!--            <version>3.5.1</version>-->
<!--        </dependency>-->
        <!--redis-->
        <dependency>
@@ -87,12 +87,11 @@
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <!-- Alibaba Fastjson -->
<!--        <dependency>-->
<!--            <groupId>com.alibaba.fastjson2</groupId>-->
<!--            <artifactId>fastjson2</artifactId>-->
<!--        </dependency>-->
        <!--整合druid数据源-->
        <dependency>
@@ -114,11 +113,11 @@
        </dependency>
        <!-- SpringDoc webmvc -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>${springdoc.version}</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.springdoc</groupId>-->
<!--            <artifactId>springdoc-openapi-ui</artifactId>-->
<!--            <version>${springdoc.version}</version>-->
<!--        </dependency>-->
        <!--httpclient-->
        <dependency>
@@ -221,12 +220,12 @@
        </dependency>
        <!-- se-common -->
        <!--dependency>
        <dependency>
            <groupId>com.terra</groupId>
            <artifactId>se-common</artifactId>
            <version>1.0.2</version>
            <scope>compile</scope>
        </dependency-->
        </dependency>
    </dependencies>
se-system/src/main/java/com/terra/system/config/MybatisPlusConfig.java
ÎļþÒÑɾ³ý
se-system/src/main/java/com/terra/system/config/WebConfig.java
@@ -3,16 +3,23 @@
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import com.alibaba.fastjson2.JSON;
import com.terra.system.interceptor.AuthInterceptor;
import com.terra.system.service.all.SysService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.config.annotation.*;
import reactor.core.Exceptions;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
@@ -50,7 +57,8 @@
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        //registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry.addResourceHandler("/druid/**").addResourceLocations("classpath:/META-INF/resources/druid/");
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
        super.addResourceHandlers(registry);
@@ -87,6 +95,7 @@
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(getAuthBean())
                // .excludePathPatterns("/swagger", "/webjars/**", "/v2/**", "/sign/**")
                //.excludePathPatterns("/v3/api-docs")
                .addPathPatterns("/**");
        super.addInterceptors(registry);
    }
@@ -96,7 +105,24 @@
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        //FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter() {
            @Override
            protected void writeInternal(Object object, org.springframework.http.HttpOutputMessage outputMessage)
                    throws IOException, org.springframework.http.converter.HttpMessageNotWritableException {
                ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
                if (attributes != null) {
                    String requestURI = attributes.getRequest().getRequestURI();
                    if ("/v3/api-docs".equals(requestURI)) { // æŽ’除 /v3/api-docs è·¯å¾„
                        // ä½¿ç”¨é»˜è®¤çš„ JSON åºåˆ—化(如 Jackson),这里需要手动处理,不能直接调用 super.writeInternal
                        outputMessage.getBody().write(String.valueOf(object).getBytes());
                        return;
                    }
                }
                super.writeInternal(object, outputMessage); // å…¶ä»–路径使用 Fastjson2 å¤„理
            }
        };
        FastJsonConfig config = new FastJsonConfig();
        config.setSerializerFeatures(
                SerializerFeature.WriteNullListAsEmpty,
se-system/src/main/java/com/terra/system/extend/CustomizedSqlInjector.java
ÎļþÒÑɾ³ý
se-system/src/main/java/com/terra/system/extend/InsertBatchMethod.java
ÎļþÒÑɾ³ý
se-system/src/main/java/com/terra/system/extend/UpdateBatchMethod.java
ÎļþÒÑɾ³ý
se-system/src/main/resources/application-prod.yml
@@ -85,6 +85,23 @@
mybatis-plus:
  type-aliases-package: com.terra.system.entity
  mapper-locations: classpath:mapper/**/*.xml
# springdoc配置
springdoc:
  gatewayUrl: /${spring.application.name}
  api-docs:
    # æ˜¯å¦å¼€å¯æŽ¥å£æ–‡æ¡£
    enabled: true
  info:
    # æ ‡é¢˜
    title: '系统模块接口文档'
    # æè¿°
    description: '系统模块接口描述'
    # ä½œè€…信息
    contact:
      name: wuww
      url: https://www.smartearth.cn/
# logging
logging:
@@ -99,8 +116,6 @@
# ç³»ç»Ÿé…ç½®
sys:
  # å¯ç”¨swagger
  swaggerEnable: true
  # è‡ªåŠ¨æŸ¥è¯¢
  autoQuery: 0
  # ç®¡ç†å‘˜ID
sm.txt
@@ -7,7 +7,11 @@
springfox:
  documentation:
    swagger-ui:
      enabled: false
    auto-startup: false
------------------------------------------------------------------- åŠŸèƒ½æ¨¡å—ï¼Œæ”¯æŒç‹¬ç«‹éƒ¨ç½²
  se-common:      é€šç”¨æ¨¡å—
 se-gateway:8001,系统网关