• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SpringBoot整合Swagger2的步骤详解

springboot 搞代码 4年前 (2022-01-05) 41次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了SpringBoot整合Swagger2的步骤详解,帮助大家更好的理解和学习使用SpringBoot框架,感兴趣的朋友可以了解下

简介

swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础, 对整个API的开发周期都提供了相应的解决方案,是一个非常庞大的项目(包括设计、编码和测试,几乎支持所有语言)。

springfox大致原理:

springfox的大致原理就是,在项目启动的过种中,spring上下文在初始化的过程, 框架自动跟据配置加载一些swagger相关的bean到当前的上下文中,并自动扫描系统中可能需要生成api文档那些类, 并生成相应的信息缓存起来。如果项目MVC控制层用的是springMvc那么会自动扫描所有Controller类,并生成对应的文档描述数据.该数据是json格式,通过路径:项目地址/ v2/api-docs可以访问到该数据,然后swaggerUI根据这份数据生成相应的文档描述界面。 因为我们能拿到这份数据,所以我们也可以生成自己的页面.

SpringBoot整合Swagger2

引入依赖

  io.springfoxspringfox-swagger22.7.0 io.springfoxspringfox-swagger-ui2.7.0

注意:jdk1.8以上才能运行swagger2

编写配置类配置Swagger

 @Configuration @EnableSwagger2 public class SwaggerConfig{ @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("org.example.yourproj<b style="color:transparent">来源gao@!dai!ma.com搞$$代^@码网</b>ect"))//这里填写项目package .paths(PathSelectors.any()) .build(); }//springfox为我们提供了一个Docket(摘要的意思)类,我们需要把它做成一个Bean注入到spring中, 显然,我们需要一个配置文件,并通过一种方式(显然它会是一个注解)告诉程序,这是一个Swagger配置文件。 private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Spring Boot中使用Swagger2构建RESTful API") .description("rest api 文档构建利器") .termsOfServiceUrl("https://www.cnblogs.com/yrxing/") .contact("xing") .version("1.0") .build(); } }//springfox允许我们将信息组合成一个ApiInfo的类,作为构造参数传给Docket

访问:http://localhost:{your_server_port}/swagger-ui.html

Swagger2常用注解使用

@Api()、@ApiOperation()

 @RestController @RequestMapping(value = "/user", produces = APPLICATION_JSON_VALUE) //配置返回值 application/json @Api(tags = "用户管理") public class HelloController { ArrayList users = new ArrayList(); @ApiOperation(value = "获取用户列表", notes = "获取所有用户信息") @RequestMapping(value = {""}, method = RequestMethod.GET) public List hello() { users.add(new User("逻辑", "luoji")); users.add(new User("叶文杰", "yewenjie")); return users; } }

@ApiModel()、@ApiModelProperty()

 @ApiModel(description = "用户",value = "用户") public class User { private String id; @ApiModelProperty(value = "用户名")//value属性指明了该字段的含义(描述 Description) private String username; @ApiModelProperty(hidden = true)//此注解可以作用在字段或者方法上,只要 hidden 属性为 true ,该字段或者方法就不会被生成api文档. private String password; private String email; private Integer age; private Boolean enabled; }

@ApiParam()

 @ApiOperation(value = "获取用户详细信息", notes = "根据url的id来获取用户详细信息") @RequestMapping(value = "getUser/{id}", method = RequestMethod.GET) public User getUser(@ApiParam(naeme = "id",value = "用户id", required = true)  @PathVariable(value = "id") String id) { return new User(id, "itguang", "123456"); }//@ApiParam这个注解,需要注意的是,这个注解方法的参数前面,不能直接用在方法上面. 

@ApiImplicitParams()、@ApiImplicitparam()

 ・・・ @Api("测试用例1") @Controller public class swaggerTestUse(){ @ApiOperation(value = "apiOperationSwaggerTest", notes = "apiOperationSwagger测试") @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id入参", required = true, dataType = "Integer", paramType = "query"), @ApiImplicitParam(name = "brand", value = "brand", required = true, dataType = "BRAND", paramType = "body") }) public void apiOperationSwaggerTest(Integer id, Brand band){ } }

以上就是SpringBoot整合Swagger2的步骤详解的详细内容,更多关于SpringBoot整合Swagger2的资料请关注gaodaima搞代码网其它相关文章!

以上就是SpringBoot整合Swagger2的步骤详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringBoot整合Swagger2的步骤详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址