本文共 2435 字,大约阅读时间需要 8 分钟。
使用RESTful服务通常是涉及到多个终端的团队,比如Android、iOS、WEB等。为了让大家沟通顺畅,通常我们需要编写一份详细的RESTful业务接口文档
使用Swagger2有助于我们编写一份详细的RESTful业务接口文档,过去经常会使用Word或者Excel,但是接口非常多,细节又复杂,如果由程序员高质量的输出一个文档,经常耗时长而且效果也不好。Swagger2能将代码和注释说明很好结合在一块。既减轻了研发人员的负担,又能输出高质量的文档。
下面说下如何去使用io.springfox springfox-swagger2 2.6.1 io.springfox springfox-swagger-ui 2.6.1
@Configuration
注解,让Spring来加载该类配置。
@EnableSwagger2
注解来启用Swagger2。 apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。RequestHandlerSelectors.basePackage()
中填的是你controller的目录apiInfo()
方法中termsOfServiceUrl
和contact
可以用Contact的对象代替 Swagger2已经不支持String类型的contact Contact对象中name表示作者,url通常作为项目的链接,代替之前的termsOfServiceUrl方法,email的话不用我多说了吧,不想写的话可以为空字符串
createRestApi
函数创建Docket的Bean之后,apiInfo()
用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现,采用指定扫描的包路径来定义,Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)。
@Configuration@EnableSwagger2public class Swagger2 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.pjb.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { Contact contact=new Contact("作者名", "http://www.jianshu.com/u/f192766abeab","email地址"); return new ApiInfoBuilder() .title("Spring Boot中使用Swagger2") .description("Hello Swagger2") //.termsOfServiceUrl("http://www.jianshu.com/u/f192766abeab") //.contact("作者名") .contact(contact) .version("1.0") .build(); }}
然后通过创建实体类和controller来简单测试下
具体的可以参照记得在UserController中需要id输入的方法的注解少了个参数配置: paramType="path"
,不然所有的参数类型都会是body,获取不到请求参数。例如
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long",paramType = "path")
; 访问:
就能看到前文所展示的RESTful API的页面。选中所写的UserController后出现5个方法让你测试
具体的测试效果可以自己来测试玩玩
转载地址:http://lgelo.baihongyu.com/