diff --git a/luoo_common/src/main/java/swagger/BaseSwaggerConfig.java b/luoo_common/src/main/java/swagger/BaseSwaggerConfig.java new file mode 100644 index 0000000..5d1e099 --- /dev/null +++ b/luoo_common/src/main/java/swagger/BaseSwaggerConfig.java @@ -0,0 +1,55 @@ +package swagger; + +import org.springframework.context.annotation.Bean; +import org.springframework.core.annotation.Order; +import org.springframework.web.bind.annotation.RequestMethod; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.builders.ResponseMessageBuilder; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.*; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import java.util.ArrayList; +import java.util.List; + +public abstract class BaseSwaggerConfig { + + @Bean + @Order(value = 1) + public Docket createRestApi() { + List responseMessageList =new ArrayList<>(); + responseMessageList.add(new ResponseMessageBuilder().code(200).message("成功").responseModel(new ModelRef("成功")).build()); + responseMessageList.add(new ResponseMessageBuilder().code(20001).message("失败").responseModel(new ModelRef("失败")).build()); + responseMessageList.add(new ResponseMessageBuilder().code(20002).message("用户名或密码错误").responseModel(new ModelRef("用户名或密码错误")).build()); + responseMessageList.add(new ResponseMessageBuilder().code(20003).message("无权访问").responseModel(new ModelRef("无权访问")).build()); + responseMessageList.add(new ResponseMessageBuilder().code(20009).message("重复提交").responseModel(new ModelRef("重复提交")).build()); + SwaggerProperties swaggerProperties = swaggerProperties(); + return new Docket(DocumentationType.SWAGGER_2) + .globalResponseMessage(RequestMethod.GET, responseMessageList) + .globalResponseMessage(RequestMethod.POST, responseMessageList) + .globalResponseMessage(RequestMethod.PUT, responseMessageList) + .globalResponseMessage(RequestMethod.DELETE, responseMessageList) + .apiInfo(apiInfo(swaggerProperties)) + .select() + .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getApiBasePackage())) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo(SwaggerProperties swaggerProperties) { + return new ApiInfoBuilder() + .title(swaggerProperties.getTitle()) + .description(swaggerProperties.getDescription()) + .contact(new Contact(swaggerProperties.getContactName(), swaggerProperties.getContactUrl(), swaggerProperties.getContactEmail())) + .version(swaggerProperties.getVersion()) + .build(); + } + + /** + * 自定义Swagger配置 + */ + public abstract SwaggerProperties swaggerProperties(); + +} diff --git a/luoo_common/src/main/java/swagger/SwaggerProperties.java b/luoo_common/src/main/java/swagger/SwaggerProperties.java new file mode 100644 index 0000000..698b58b --- /dev/null +++ b/luoo_common/src/main/java/swagger/SwaggerProperties.java @@ -0,0 +1,43 @@ +package swagger; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@Builder +public class SwaggerProperties { + /** + * API文档生成基础路径 + */ + private String apiBasePackage; + /** + * 是否要启用登录认证 + */ + private boolean enableSecurity; + /** + * 文档标题 + */ + private String title; + /** + * 文档描述 + */ + private String description; + /** + * 文档版本 + */ + private String version; + /** + * 文档联系人姓名 + */ + private String contactName; + /** + * 文档联系人网址 + */ + private String contactUrl; + /** + * 文档联系人邮箱 + */ + private String contactEmail; +}