swagger,中文“拽”的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试。另外swagger很容易构建restful风格的api,简单优雅帅气,正如它的名字。
一、引入依赖
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.6.1</version></dependency>
二、写配置类
package com.elvis.web.swagger;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class Swagger2Config {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.elvis.web")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("springboot利用swagger构建api文档").description("简单优雅的restfun风格,https://blog.youkuaiyun.com/JackRen_Developer").termsOfServiceUrl("https://blog.youkuaiyun.com/JackRen_Developer").version("1.0").build();}}
通过@Configuration注解,表明它是一个配置类,@EnableSwagger2开启swagger2。apiINfo()配置一些基本的信息。apis()指定扫描的包会生成文档。
三、写生产文档的注解
swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiParamImplicitL:一个请求参数
@ApiParamsImplicit 多个请求参数
现在通过一个例子来说明:
package com.elvis.web;import com.elvis.interfaces.UserService;import com.elvis.pojo.User;import io.swagger.annotations.ApiOperation;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;import java.util.List;/*** @program: fbs* @description:* @author: JackRen* @create: 2019-09-19 11:24**/@Controllerpublic class UserController {@Resourceprivate UserService userService;@RequestMapping(value = "/user/query",method = RequestMethod.GET)@ResponseBody@ApiOperation(value = "查询用户信息", notes="根据url来获取详细信息")public List<User> queryUsers(){return userService.queryUsers();}@RequestMapping(value = "/user/search",method = RequestMethod.GET)@ResponseBody@ApiOperation(value = "查询用户信息", notes="根据url来获取数据库详细信息")public List<User> queryUsersDB(){return userService.queryUsersDB();}}
通过相关注解,就可以让swagger2生成相应的文档。如果你不需要某接口生成文档,只需要在加@ApiIgnore注解即可。需要说明的是,如果请求参数在url上,@ApiImplicitParam 上加paramType = “path” 。
启动工程,访问:http://localhost:8080/swagger-ui.html ,就看到swagger-ui:

至此,swagger集成结束!

本文介绍了如何在SpringBoot项目中集成Swagger2,以构建方便的RESTful API文档和测试平台。Swagger2提供在线文档查看和测试功能,并简化了创建RESTful API的过程。文章详细讲解了引入依赖、配置类编写以及使用Swagger注解来标记接口和参数,最后展示了启动后访问Swagger UI的步骤。
729

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



