继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

SpringBoot基础系列-整合Swagger2

慕哥9229398
关注TA
已关注
手记 1252
粉丝 199
获赞 913

步骤

第一步:添加必要的依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version></dependency><dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version></dependency>

第二步:添加必要的配置

一般无配置项,必要时可以添加自定义配置项,在配置类中读取

第三步:添加配置类(重点)

// 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<User> 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<User> 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<User> 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<User> 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<List<User>> 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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP