(一)spring boot集成swagger
通过集成springfox-swagger2来内建一个swagger ui实例
(二)swagger集成spring boot+eureka
1、添加springfox-swagger2依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
2、添加启动配置类
在与spring boot启动类同package下添加类Swagger.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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 Swagger {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.seashell.demo.swaggerspringboot.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
Contact contact = new Contact("Allen", "https://xxx.me", "156318641@qq.com");
return new ApiInfo("Demo项目API",
"",
"v1.0.0", "", contact, "", "",new ArrayList<>());
}
}
其中
Docket
类是Springfox框架的主接口,引导构建swagger配置。
ApiInfo
类用来显示swagger页的标题、版本和联系人信息
3、添加注解
新建一个Controller和接口的实现方法,这里我只写了get
方法接口
@RestController
@RequestMapping("demo")
public class DemoController {
@RequestMapping(value = "{id}",method = RequestMethod.GET)
public Test get(@PathVariable Integer id){
Test model = new Test();
model.setId(id);
model.setContent("content");
String[] array = new String[]{"array1","array2","array3"};
model.setArray(array);
List<String> list = new ArrayList<>();
list.add("list item 1");
list.add("list item 2");
list.add("list item 3");
list.add("list item 4");
model.setList(list);
return model;
}
}
给这个类和方法添加swagger的注解
@Api(value="Demo服务",description = "demo服务描述")
...
@ApiOperation(value = "demo服务的get方法")
...
@ApiParam(value = "id参数描述", required = true)
其他注解在官网API文档中查看
注解API文档传送门
Ok,这样就大功告成了!
4、启动项目查看效果
打开浏览器输入:
http://localhost:8080/swagger-ui.html
最后到了上源码时间:
https://gitee.com/allendong/swagger-springboot-demo.git