SpringBoot 集成 Swagger
引入POM
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket docket(Environment environment) {
Profiles profiles = Profiles.of("dev");
boolean enableSwagger = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("OWTS")
.enable(enableSwagger)
.select()
.apis(RequestHandlerSelectors.any())
.build()
;
}
private ApiInfo apiInfo() {
Contact contact = new Contact("OWTS", "http://owts.cn.utools.club", "632662637@qq.com");
return new ApiInfo(
"OWTS API",
"OWTS API DOCUMENTATION",
"1.0",
"urn:tos",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
}
接口示例
import com.cmsen.common.http.response.RestResponse;
import com.cmsen.cpc.application.service.SysAuthService;
import com.cmsen.cpc.domain.form.LoginForm;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("sys/auth")
public class SysAuthFacade {
@Resource
private SysAuthService service;
@ApiOperation("小程序获取验证码")
@GetMapping("/app/{tel}/{jsCode}")
public RestResponse getMessagesCodeApp(@ApiParam("jscode") @PathVariable("jsCode") String jsCode, @ApiParam("手机号") @PathVariable("tel") String tel) {
return service.getMessageCodeApp(tel, jsCode);
}
@ApiOperation("小程序验证验证码并登陆")
@GetMapping("/app/verify/{tel}/{code}")
public RestResponse verifyAppCode(@ApiParam("验证码") @PathVariable("code") String code, @ApiParam("手机号") @PathVariable("tel") String tel) {
return service.verifyMessageCodeApp(tel, code);
}
@ApiOperation("用户登录")
@PostMapping("login")
public RestResponse login(@RequestBody LoginForm loginForm) {
return service.login(loginForm);
}
@ApiOperation("登出")
@GetMapping("logout")
public RestResponse logout(HttpServletRequest request) {
return service.logout(request);
}
}
实体示例
@ApiModel("用户登录实体类")
@Data
public class LoginForm {
@ApiModelProperty("用户名")
@NotBlank
private String username;
@ApiModelProperty("密码")
@NotBlank
private String password;
}
访问
http://localhost:9001/api/swagger-ui.html