栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

SpringBoot基础系列-整合Swagger2

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot基础系列-整合Swagger2

步骤第一步:添加必要的依赖

    io.springfox
    springfox-swagger2
    2.7.0
    io.springfox
    springfox-swagger-ui
    2.7.0
第二步:添加必要的配置
一般无配置项,必要时可以添加自定义配置项,在配置类中读取
第三步:添加配置类(重点)
// swagger2的配置内容仅仅就是需要创建一个Docket实例@Configuration@EnableSwagger2 //启用swagger2public class Swagger2Config {    @Bean
    public Docket createRestApi() {        return new Docket(documentationType.SWAGGER_2)
                .pathMapping("/")
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.springbootdemo"))
                .paths(PathSelectors.any())
                .build();
    }    private ApiInfo apiInfo() {        return new ApiInfoBuilder()
                .title("springboordemo")
                .description("Springboot整合Demo")
                .version("0.0.1")
                .build(); // 这部分信息其实可以自定义到配置文件中读取
    }
}

通过@Configuration注解,让Spring-boot来加载该类配置。再通过@EnableSwagger2注解来启用Swagger2Configuration。
再通过buildDocket函数创建Docket的Bean之后,
buildApiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。
select() 函数返回一个 ApiSelectorBuilder 实例用来控制哪些接口暴露给Swagger2来展现。
一般采用指定扫描的包路径来定义
Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)

第四步:在Controller和Bean上添加Swagger注解
@RestController@RequestMapping("/user")@Log4j2@Api(description = "用户接口")public class UserApi {    @Autowired
    private UserService service;    @ApiOperation(value = "添加用户", notes = "根据给定的用户信息添加一个新用户",response = ResponseEntity.class,httpMethod = "PATCH")    @RequestMapping(value = "/addUser",method = RequestMethod.PATCH)    public ResponseEntity addUser(final User user) {
        log.info("执行添加用户操作");        return service.addUser(user);
    }    @ApiOperation(value = "更新用户", notes = "根据给定的用户信息修改用户",response = ResponseEntity.class,httpMethod = "POST")    @RequestMapping(value = "/updateUser", method = RequestMethod.POST)    public ResponseEntity updateUser(final User user) {
        log.info("执行修改用户操作");        return service.updateUser(user);
    }    @ApiOperation(value = "删除用户", notes = "根据给定的用户ID删除一个用户",response = ResponseEntity.class,httpMethod = "DELETE")    @RequestMapping(value = "/deleteUser", method = RequestMethod.DELETE)    public ResponseEntity deleteUser(final int useId) {
        log.info("执行删除用户操作");        return service.deleteUser(useId);
    }    @ApiOperation(value = "查询用户", notes = "根据给定的用户ID获取一个用户",response = ResponseEntity.class,httpMethod = "GET")    @RequestMapping(value = "getUser", method = RequestMethod.GET)    public ResponseEntity getUser(final int useId) {
        log.info("执行查询单个用户操作");        return service.getUser(useId);
    }    @ApiOperation(value = "查询用户", notes = "根据给定的用户信息查询用户",response = ResponseEntity.class,httpMethod = "POST")    @RequestMapping(value = "getUsers", method = RequestMethod.POST)    public ResponseEntity> getUsers(final User user) {
        log.info("根据条件查询用户");        return service.getUsers(user);
    }
}
@ApiModel(value = "用户模型")public class User {    @ApiModelProperty("用户ID")    private int useId;    @ApiModelProperty("用户姓名")    private String useName;    @ApiModelProperty("用户性别")    private UseSex useSex;    @ApiModelProperty("用户年龄")    private int useAge;    @ApiModelProperty("用户身份证号")    private String useIdNo;    @ApiModelProperty("用户手机号")    private String usePhoneNum;    @ApiModelProperty("用户邮箱")    private String useEmail;    @ApiModelProperty("创建时间")    private LocalDateTime createTime;    @ApiModelProperty("修改时间")    private LocalDateTime modifyTime;    @ApiModelProperty("用户状态")    private UseState useState;
}
第五步:启动应用,浏览器请求
http://localhost:8080/swagger-ui.html



作者:qe2592008
链接:https://www.jianshu.com/p/ddc27aa10203


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235314.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号