swagger 可以用来生成接口文档,同时提供测试使用
官网:https://swagger.io/
项目地址: https://github.com/springfox/springfox
文档地址: http://springfox.github.io/springfox/docs/current/
Spring MVC 下使用 swagger:
- pom.xm 文件
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<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>
这里因为继承了 org.springframework.boot 的原因有些包没有版本号,需要的话自己加
2.Spring 配置
<context:annotation-config/>
<!-- 扫描 controller -->
<context:component-scan base-package="com.ymt.controller"/>
<bean id="swagger2Config" class="springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration"/>
<mvc:resources mapping="/swagger-ui.html" location="classpath:/META-INF/resources/"/>
3.接口说明配置
@Api(value = "用户信息", description = "用户信息")
@Controller
public class UserController {
@ApiOperation("登录")
@RequestMapping(value = "/login")
public String login(@ApiParam(value = "用户名") @RequestParam String username,
@ApiParam(value = "密码") @RequestParam String password) {
return "welcome";
}
}
到此为止就完成了,访问 http://localhost:8080/{项目名称}/swagger-ui.html 就可以看到API了 

swagger 默认会扫描所有接口,实现Spring 配置文件中的 springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration 类,控制只显示实现了ApiOperation 接口的API
@Configuration
@Import({ SpringfoxWebMvcConfiguration.class, SwaggerCommonConfiguration.class })
@ComponentScan(basePackages = { "springfox.documentation.swagger2.readers.parameter",
"springfox.documentation.swagger2.mappers" })
public class ApplicationSwaggerConfig extends Swagger2DocumentationConfiguration {
@SuppressWarnings("deprecation")
@Bean
public Docket myDocket() {
Docket docket = new Docket(DocumentationType.SWAGGER_2);
ApiInfo apiInfo = new ApiInfo("基础框架", "这是一个项目的基础框架结构,构建新项目可以在这个基础上搭建", "1.0", "apiDocs", "zhouxianglh@qq.com",
"", "");
docket.apiInfo(apiInfo);
docket.select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();
return docket;
}
}
参考:
http://www.jianshu.com/p/12f4394462d5
http://www.jianshu.com/p/5cfbe62a1569
http://git.oschina.net/shuzheng/zheng

1298

被折叠的 条评论
为什么被折叠?



