Commit dc55de4e authored by lidongdai's avatar lidongdai
Browse files

1.0.2文档发布

parent 06acbe5f
Loading
Loading
Loading
Loading
+14 −30
Original line number Diff line number Diff line
@@ -35,35 +35,7 @@
      </exclusions>
    </dependency>

    <!--<dependency>-->
      <!--<groupId>cn.analysys</groupId>-->
      <!--<artifactId>escheduler-dao</artifactId>-->
    <!--</dependency>-->
    <!--<dependency>-->
      <!--<groupId>cn.analysys</groupId>-->
      <!--<artifactId>escheduler-common</artifactId>-->
      <!--<exclusions>-->
        <!--<exclusion>-->
          <!--<groupId>io.netty</groupId>-->
          <!--<artifactId>netty</artifactId>-->
        <!--</exclusion>-->
        <!--<exclusion>-->
          <!--<groupId>io.netty</groupId>-->
          <!--<artifactId>netty-all</artifactId>-->
        <!--</exclusion>-->
        <!--<exclusion>-->
          <!--<groupId>com.google</groupId>-->
          <!--<artifactId>netty</artifactId>-->
        <!--</exclusion>-->
        <!--<exclusion>-->
          <!--<artifactId>leveldbjni-all</artifactId>-->
          <!--<groupId>org.fusesource.leveldbjni</groupId>-->
        <!--</exclusion>-->
      <!--</exclusions>-->
    <!--</dependency>-->

    <!--springboot-->

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
@@ -170,14 +142,21 @@
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.8.0</version>
      <version>2.9.2</version>
    </dependency>

    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.8.0</version>
      <version>2.9.2</version>
    </dependency>

    <dependency>
      <groupId>com.github.xiaoymin</groupId>
      <artifactId>swagger-bootstrap-ui</artifactId>
      <version>1.9.3</version>
    </dependency>

    <dependency>
      <groupId>cn.analysys</groupId>
      <artifactId>escheduler-rpc</artifactId>
@@ -189,6 +168,11 @@
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.swagger</groupId>
      <artifactId>swagger-jaxrs</artifactId>
      <version>1.5.12</version>
    </dependency>

  </dependencies>
  <build>
+6 −1
Original line number Diff line number Diff line
@@ -19,14 +19,19 @@ package cn.escheduler.api;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication
@ServletComponentScan
@ComponentScan("cn.escheduler")
public class ApiApplicationServer {
@EnableSwagger2
public class ApiApplicationServer extends SpringBootServletInitializer {

  public static void main(String[] args) {
    SpringApplication.run(ApiApplicationServer.class, args);
  }


}
+46 −12
Original line number Diff line number Diff line
@@ -20,6 +20,12 @@ import cn.escheduler.api.interceptor.LoginHandlerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.i18n.CookieLocaleResolver;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;

import java.util.Locale;


/**
 * application configuration
@@ -31,24 +37,48 @@ public class AppConfiguration implements WebMvcConfigurer {
  public static final String LOGIN_PATH_PATTERN = "/login";
  public static final String PATH_PATTERN = "/**";

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html");
  }
//
//  @Override
//  public void addResourceHandlers(ResourceHandlerRegistry registry) {
//    registry.addResourceHandler("swagger-ui.html")
//            .addResourceLocations("classpath:/META-INF/resources/");
//    registry.addResourceHandler("/webjars/**")
//            .addResourceLocations("classpath:/META-INF/resources/webjars/");
//  }

  @Bean
  public LoginHandlerInterceptor loginInterceptor() {
    return new LoginHandlerInterceptor();
  }


  //Cookie
  @Bean
  public LocaleResolver localeResolver() {
    CookieLocaleResolver localeResolver = new CookieLocaleResolver();
    localeResolver.setCookieName("localeCookie");
    //设置默认区域
    localeResolver.setDefaultLocale(Locale.ENGLISH);
    localeResolver.setCookieMaxAge(3600);//设置cookie有效期.
    return localeResolver;
  }

  @Bean
  public LocaleChangeInterceptor localeChangeInterceptor() {
    LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
    // 参数名
    lci.setParamName("lang");

    return lci;
  }


  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html");
    //i18n
    registry.addInterceptor(localeChangeInterceptor());
  }


  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  }

  @Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping(PATH_PATTERN).allowedOrigins("*").allowedMethods("*");
@@ -64,4 +94,8 @@ public class AppConfiguration implements WebMvcConfigurer {
  public void configureContentNegotiation(final ContentNegotiationConfigurer configurer) {
    configurer.favorPathExtension(false);
  }




}
+5 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
 */
package cn.escheduler.api.configuration;

import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@@ -35,7 +36,8 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
 */
@Configuration
@EnableSwagger2
public class Swagger2 implements WebMvcConfigurer {
@EnableSwaggerBootstrapUI
public class SwaggerConfig implements WebMvcConfigurer {

    @Bean
    public Docket createRestApi() {
@@ -45,8 +47,8 @@ public class Swagger2 implements WebMvcConfigurer {
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("api docs").description("easy scheduler api docs")
                .termsOfServiceUrl("https://www.analysys.com").version("1.0.0").build();
        return new ApiInfoBuilder().title("Easy Scheduler Api Docs").description("Easy Scheduler Api Docs")
                .version("1.0.0").build();
    }


+52 −0
Original line number Diff line number Diff line
package cn.escheduler.api.configuration;

import java.util.List;
import java.util.Locale;
import com.fasterxml.classmate.TypeResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import io.swagger.annotations.ApiOperation;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.OperationBuilderPlugin;
import springfox.documentation.spi.service.contexts.OperationContext;


@Component
@Order(Ordered.HIGHEST_PRECEDENCE - 10)
public class SwaggerI18nPlugin implements OperationBuilderPlugin {

    private static final Logger logger = LoggerFactory.getLogger(SwaggerI18nPlugin.class);

    @Autowired
    private MessageSource messageSource;

    @Override
    public void apply(OperationContext context) {

        Locale locale = LocaleContextHolder.getLocale();

        List<ApiOperation> list = context.findAllAnnotations(ApiOperation.class);
        if (list.size() > 0) {
            for(ApiOperation api : list){
                context.operationBuilder().summary(messageSource.getMessage(api.value(), null, locale));
                context.operationBuilder().notes(messageSource.getMessage(api.notes(), null, locale));
            }
        }


    }


    @Override
    public boolean supports(DocumentationType delimiter) {
        return true;
    }

}
Loading