Springboot+Swagger3自动生成API文档(附项目地址)

Springboot+Swagger3自动生成API文档(附项目地址),第1张

Springboot-cli 开发脚手架系列

Netty系列:Springboot+Swagger3自动生成API文档


文章目录
  • Springboot-cli 开发脚手架系列
  • 前言
    • 1. 环境
    • 2. 编写配置文件
    • 3. 编写接口
    • 4. 效果展示
    • 5. 源码分享


前言
  • 号称世界上最流行的API框架
  • RestFul API文档在线生成工具—API文档与API同步更新
  • 可以直接运行,可以在线测试API接口
  • 支持多种语言:(Java,PHP…)
    结尾有完整源码下载地址
1. 环境
  • 引入依赖pom.xml
  • 注意 spring-boot-starter-parent 不能大于2.5.3 否则swagger3报错
       <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
        dependency>
    
        <dependency>
            <groupId>io.springfoxgroupId>
            <artifactId>springfox-boot-starterartifactId>
            <version>3.0.0version>
        dependency>
2. 编写配置文件
  • SwaggerConfig.java
@EnableOpenApi
@Configuration
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        //swagger设置,基本信息,要解析的接口及路径等
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                //设置通过什么方式定位需要自动生成文档的接口,这里定位方法上的@ApiOperation注解
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                //接口URI路径设置,any是全路径,也可以通过PathSelectors.regex()正则匹配
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 生成接口信息,包括标题、联系人,联系方式等
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Swagger3接口文档")
                .description("如有疑问,请联系开发工程师")
                .contact(new Contact("xx", "www.xx.com", "[email protected]"))
                .version("1.0")
                .build();
    }
}
3. 编写接口
  • 创建实体User .java
@Data
@Accessors(chain = true)
@ApiModel("用户信息表")
public class User {

    @ApiModelProperty("用户id")
    private Long userId;

    @ApiModelProperty("用户名")
    private String username;

    @ApiModelProperty("用户性别")
    private String sex;
}
  • 创建web接口UserController.java
@RestController
@Api(tags = "UserController:用户信息管理接口")
public class UserController {

    @GetMapping("/get")
    @ApiOperation("获取数据")
    public User get() {
        return new User().setUserId(1L).setSex("男").setUsername("王小锤");
    }

    @PostMapping("/add")
    @ApiOperation("添加数据")
    public String add(User user) {
        return "添加数据成功";
    }

    @DeleteMapping("/del")
    @ApiOperation("删除数据")
    public String del() {
        return "删除数据成功";
    }

    @PostMapping("/upd")
    @ApiOperation("更新数据")
    public String upd() {
        return "更新数据成功";
    }
}
4. 效果展示
  • 启动项目
  • 浏览器输入http://{ip}:{port}/swagger-ui/index.html#/
  • 接口信息
  • 模拟http进行请求
  • 实体文档
5. 源码分享

本项目已收录

  • Springboot-cli开发脚手架,集合各种常用框架使用案例,完善的文档,致力于让开发者快速搭建基础环境并让应用跑起来。
  • 项目源码github地址
  • 项目源码国内gitee地址

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/719911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存