目录
1.问题:我只希望我的Swagger在生产环境中使用,在发布的时候不适用?
前后端分离的流行(Vue+SpringBoot )我们在对接前后端的时候,都需要提供相应的接口文档。对于后端来说,编写接口文档即费时费力,还会经常因为没有及时更新,导致前端对接时出现实际接口与文档不一致。而且手写接口文档还容易出错,而swagger很好的解决了这个痛点。
Swagger号称世界上最流行的Api框架
RESTful Api 文档在线自动生成工具=>ApI文档与API定义自动更新
直接运行,在线测试API接口
支持多种语言:JAVA,PHP.等
Swagger2
ui
- <dependency>
- <groupId>io.springfoxgroupId>
- <artifactId>springfox-swagger2artifactId>
- <version>2.9.2version>
- dependency>
- <dependency>
- <groupId>io.springfoxgroupId>
- <artifactId>springfox-swagger-uiartifactId>
- <version>2.9.2version>
- dependency>
- @RestController
- public class HelloController {
- @GetMapping("/hello")
- public String hello() {
- return "hello world";
-
- }
- @Configuration
- @EnableSwagger2//开启Swagger
- public class SwaggerConfig {
-
- }
http://localhost:8080/swagger-ui.html
- @Configuration
- @EnableSwagger2//开启Swagger
- public class SwaggerConfig {
- return new Docket(DocumentationType.SWAGGER_2)
- .apiInfo(apiInfo())
- .groupName("朱笑笑")
- .enable(true)
- .select()
- .apis(RequestHandlerSelectors.basePackage("com.kuang.swagger.controller"))
- .build()
- ;
- }
-
- // 配置Swagger基本信息,有用的话,也就是题目和标题罢了
- private ApiInfo apiInfo(){
- Contact contact = new Contact("笑笑","http://baidu.com/","2844509367@qq.com");
- return new ApiInfo(
- "朱笑笑的Swagger文档",
- "天边的天边",
- "v1.0",
- "http://baidu.com/",
- contact,
- "Apache 2.0",
- "http://www.apache.org/licenses/LICENSE-2.0",
- new ArrayList());
- }
- 判断环境是否为测试环境,如果为测试环境则返回trun,否则为false
- Profiles profiles = Profiles.of("dev", "text");
- boolean flag = environment.acceptsProfiles(profiles);
-
-
- 获得boolean类型的flag之后再传入Docket的enable中即可
- 创建多个的Dcoket,并对groupName进行命名即可
- @Bean
- public Docket docket1() {
- return new Docket(DocumentationType.SWAGGER_2)
- .apiInfo(apiInfo())
- .groupName("赵层")
- ;
- }
- @Bean
- public Docket docket2() {
- return new Docket(DocumentationType.SWAGGER_2)
- .groupName("成求")
- ;
- }
- @Bean
- public Docket docket3() {
- return new Docket(DocumentationType.SWAGGER_2)
- .groupName("彬彬")
- ;
- }
-
- @ApiModel("用户实体类")
- public class User {
- @ApiModelProperty("用户名")
- private String username;
- @ApiModelProperty("密码")
- private String password;
- }
- @Api("Hello控制类")
- @RestController
- public class HelloController {
-
-
- }
- @ApiOperation("User控制类")
- @PostMapping("/user")
- 参数的api
- public User user(@ApiParam("用户名")String username) {
- return new User();
- }
然后会显示相应的请求正确与错误,这样更有利于检查