SpringBoot2.7-集成Knife4j
2023-12-28 14:54:34
Knife4j
-
是什么
Knife4j
是一个集Swagger2
和OpenAPI3
为一体的增强解决方案 -
添加依赖
<!--引入Knife4j的官方start包,该指南选择Spring Boot版本<3.0,开发者需要注意--> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi2-spring-boot-starter</artifactId> <version>4.0.0</version> </dependency>
-
创建配置类
package com.example.demospringbootdemo.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.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; @Configuration @EnableSwagger2WebMvc public class Knife4jConfiguration { @Bean(value = "dockerBean") public Docket dockerBean() { //指定使用Swagger2规范 Docket docket=new Docket(DocumentationType.SWAGGER_2) .apiInfo(new ApiInfoBuilder() //描述字段支持Markdown语法 .description("# Knife4j RESTful APIs") .termsOfServiceUrl("https://itl-coder.github.io/") .contact("ituninapp@gmail.com") .version("1.0") .build()) //分组名称 .groupName("用户服务") .select() //这里指定Controller扫描包路径 .apis(RequestHandlerSelectors.basePackage("com.example.demospringbootdemo.controller")) .paths(PathSelectors.any()) .build(); return docket; } }
-
控制器的使用
-
实体类参数
@RestController @Api(tags = "用户管理", description = "提供用户信息的接口") public class UserController { @ApiOperation(value = "对接口功能的说明", notes = "根据用户传入的信息返回用户对象") @GetMapping("/user") public User sayUser(User user) { return user; } }
-
普通字段
package com.example.demospringbootdemo.controller; import com.example.demospringbootdemo.domain.User; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @Api(tags = "用户管理", description = "提供用户信息的接口") public class UserController { @ApiOperation(value = "对接口功能的说明") @GetMapping("/hello") public String sayHello( @ApiParam(name = "username", required = false, defaultValue = "coder-itl") String username, @ApiParam(name = "password", required = true, defaultValue = "123") String password) { return username + " " + password; } }
-
-
实体类使用
@Data @NoArgsConstructor @AllArgsConstructor @ApiModel(value = "用户实体") public class User { @ApiModelProperty(value="姓名",example="张飞") private String username; @ApiModelProperty(value="密码",example="123",required = true) private Integer password; }
-
启动
http://localhost:8080/doc.html
文章来源:https://blog.csdn.net/weixin_43340420/article/details/135267156
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!