博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swagger ui和spring boot集成生成api文档
阅读量:6038 次
发布时间:2019-06-20

本文共 2445 字,大约阅读时间需要 8 分钟。

作者:小莫
链接:https://www.zhihu.com/question/28119576/answer/134580038
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一、环境
1. JAVA8
2. MAVEN 3.0.5
3. IDEA 2016.2.5
4. spring boot 1.4.1
io.springfox
springfox-swagger-ui
2.2.2
io.springfox
springfox-swagger2
2.2.2
三、配置

设置了一些默认显示的api相关信息,最后上截图的时就可以比较清楚的看到。

@Configuration@EnableSwagger2public class Swagger2Config {    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("info.xiaomo.website"))                .paths(PathSelectors.any())                .build();    }    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("Spring Boot中使用Swagger2构建RESTful APIs")                .description("api根地址:http://api.xiaomo.info:8080/")                .termsOfServiceUrl("https://xiaomo.info/")                .contact("小莫")                .version("1.0")                .build();    }}
四、相关注解解读
1. @Api

用在类上,说明该类的作用

@Api(value = "UserController", description = "用户相关api")

2. @ApiOperation

用在方法上,说明方法的作用

@ApiOperation(value = "查找用户", notes = "查找用户", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)

3 @ApiImplicitParams

用在方法上包含一组参数说明

4. @ApiImplicitParam

用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

paramType:参数放在哪个地方
header–>请求参数的获取:@RequestHeader
query–>请求参数的获取:@RequestParam
path(用于restful接口)–>请求参数的获取:@PathVariable
body(不常用)
form(不常用)
name:参数名
dataType:参数类型
required:参数是否必须传
value:参数的意思
defaultValue:参数的默认值

@ApiImplicitParams({        @ApiImplicitParam(name = "id", value = "唯一id", required = true, dataType = "Long", paramType = "path"),})
5. @ApiResponses

用于表示一组响应

6. @ApiResponse

用在@ApiResponses中,一般用于表达一个错误的响应信息

code:数字,例如400
message:信息,例如”请求参数没填好”
response:抛出异常的类

@ApiResponses(value = {            @ApiResponse(code = 400, message = "No Name Provided")    })
7. @ApiModel

描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)

@ApiModel(value = "用户实体类")

8. @ApiModelProperty

描述一个model的属性

@ApiModelProperty(value = "登录用户")

五、 和Swagger UI的集成

首先,从github 上下载Swagger-UI, 把该项目dist目录下的内容拷贝到项目的resources的目录public下。

六、访问

就可以看到效果如下

你可能感兴趣的文章
深入JVM内核--GC算法和种类
查看>>
iOS的AssetsLibrary框架访问所有相片
查看>>
读书笔记三
查看>>
数论 - 最小乘法逆元
查看>>
企业架构研究总结(22)——TOGAF架构开发方法(ADM)之信息系统架构阶段
查看>>
接口测试(三)--HTTP协议简介
查看>>
周志华《机器学习》课后答案——第4章.决策树
查看>>
frameset分帧问题
查看>>
特殊样式:ime-mode禁汉字,tabindex焦点
查看>>
linux
查看>>
Layout父元素点击不到的解决办法
查看>>
【面试次体验】堆糖前端开发实习生
查看>>
基于apache实现负载均衡调度请求至后端tomcat服务器集群的实现
查看>>
C#+QQEmail自动发送邮件
查看>>
[Hadoop]MapReduce多输出
查看>>
Android Activity详解(一)
查看>>
快准车服完成3000万元A+轮融资,年底将开始B轮融资
查看>>
让我去健身的不是漂亮小姐姐,居然是贝叶斯统计!
查看>>
MySQL 数据约束
查看>>
我的友情链接
查看>>