swagger使用
添加依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
springBoot整合swagger
新建一个class
@Configuration
public class Swagger{
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.mymiaosha.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("java电商实战api文档")
.description("")
.termsOfServiceUrl("")
.version("1.0")
.build();
}
}
Swagger使用的注解及其说明:
@Api:用在类上,说明该类的作用。
@ApiOperation:注解来给API增加方法说明。
@ApiImplicitParams : 用在方法上包含一组参数说明。
@ApiImplicitParam:用来注解来给方法入参增加说明。
@ApiResponses:用于表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
@ApiModel:描述一个Model的信息(一般用在请求参数无法使用)
@ApiImplicitParam注解进行描述的时候)
查看结果
http://localhost:8080/swagger-ui.html
端口根据程序决定
导出静态文件(markdown)
添加依赖
<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.8.2</version>
</dependency>
<dependency>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup</artifactId>
<version>1.3.3</version>
</dependency>
编写测试类
@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
@SpringBootTest
public class MymiaoshaApplicationTests {
@Test
public void generateMarkdownFile() throws Exception {
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
.withMarkupLanguage(MarkupLanguage.MARKDOWN)
.build();
URL apiUrl = new URL("http://localhost:8080/v2/api-docs");
// 指定文件名称
String markdownFileName = "src/docs/markdown/generated/MSBlog_Server_API";
Swagger2MarkupConverter.from(apiUrl)
.withConfig(config)
.build()
//指定生成目录下生成指定文件
.toFile(Paths.get(markdownFileName));
}
}
程序执行后再执行测试类即可在指定路径自动生成文件
完成!!!