快速搭建Swagger(knife4j版)
0.Swagger的常用注解
1.@Api:用于标注Controller类,表示该类是Swagger资源。
2.@ApiOperation:用于标注Controller类的方法,表示该方法是一个ApiOperation,即API的一个操作。该注解包含以下属性:
? ? ? ? ①value:ApiOperation的简要说明。
? ? ? ? ②notes:ApiOperation的详细说明。
? ? ? ? ③tags:指定API所属的标签,可以在Swagger UI中进行分类展示。
? ? ? ??④response:设置API的响应类型,可以使用Java类或者Swagger定义的ResponseMessage类。
3.@ApiParam:用于标注Controller类的方法参数,表示该参数是一个API参数。该注解包含以下属性:
? ? ? ? ①value:API参数的简要说明。
? ? ? ? ②required:指定该参数是否必须。
? ? ? ? ③defaultValue:指定该参数的默认值。
4.@ApiModelProperty:用于标注Java类的属性,表示该属性是一个API参数或者响应参数。该注解包含以下属性:
? ? ? ? ①value:API参数或者响应参数的简要说明。
? ? ? ? ②required:指定该参数是否必须。
? ? ? ? ③example:指定该参数的示例值。
5.@ApiModel:用于标注Java类,表示该类是一个Swagger模型。该注解包含以下属性:
? ? ? ? ①value:模型的名称。
? ? ? ? ②description:模型的描述信息。
6.@ApiImplicitParam:用于标注Controller类的方法,表示API的隐式参数。该注解包含以下属性:
? ? ? ? ①name:参数名称。
? ? ? ? ②value:参数说明。
? ? ? ? ③dataType:参数类型。
? ? ? ? ④paramType:参数传递方式(query、header、path、cookie)。
7.@ApiImplicitParams:用于标注Controller类的方法,可以标注多个@ApiImplicitParam注解,表示API的多个隐式参数。
1.pom文件中加入依赖
<!-- knife4J -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
注意:版本依赖根据SpringBoot版本而变(我使用的版本是“2.3.12.RELEASE”)
2.添加Swagger配置类
package com.example.swagger.config;
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;
/**
* @author zh
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket apiDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.swagger.controller")) // 指定API的扫描路径
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("练习项目")
.description("练习项目")
.version("1.0.0")
.build();
}
}
3.启动类上添加注解“@EnableKnife4j”
package com.example.swagger;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author lenovo
*/
@SpringBootApplication
@EnableKnife4j
public class RedisDemoApplication {
public static void main(String[] args) {
SpringApplication.run(RedisDemoApplication.class, args);
}
}
4.Controller代码
package com.example.swagger.controller;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author lenovo
*/
@RestController
@RequestMapping("/swagger")
@Api("swagger练习")
public class SwaggerController {
@GetMapping("/test1")
public Object test1() {
return null;
}
@GetMapping("/test2")
public Object test2() {
return null;
}
@GetMapping("/test3")
public Object test3() {
return null;
}
}
5.启动项目,访问即可
http://+IP地址+端口+/doc.html#/
以上就是所有swagger的配置,希望对你有所帮助,感谢观看!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!