Swagger2简单实用


前后端分离很好用的api

 

    io.springfox
    springfox-swagger2


    io.springfox
    springfox-swagger-ui

创建Swagger2配置文件

/**
 * @author QiuQiu&LL
 * @create 2021-06-20  14:43
 * @Description:
 */
@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket webApiConfig() {

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .select()
                //只显示api路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/api/.*")))
                .build();

    }

    @Bean
    public Docket adminApiConfig() {

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("adminApi")
                .select()
                //只显示admin路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
                .build();
    }

    private ApiInfo webApiInfo() {

        return new ApiInfoBuilder()
                .title("网站-API文档")
                .description("本文档描述了网站微服务接口定义")
                .version("1.0")
                .contact(new Contact("Qbb", "https://mail.163.com", "startqbb@163.com"))
                .build();
    }

    private ApiInfo adminApiInfo() {

        return new ApiInfoBuilder()
                .title("后台管理系统-API文档")
                .description("本文档描述了后台管理系统微服务接口定义")
                .version("1.0")
                .contact(new Contact("Qbb", "https://mail.163.com", "startqbb@163.com"))
                .build();
    }

}

重启服务器查看接口

entity的实体类中可以添加一些自定义设置

@ApiModelProperty(value = "入驻时间", example = "2010-01-01")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private Date joinDate;

@ApiModelProperty(value = "创建时间", example = "2019-01-01 8:00:00")
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;

@ApiModelProperty(value = "更新时间", example = "2019-01-01 8:00:00")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;

定义接口说明和参数说明

定义在类上:@Api

定义在方法上:@ApiOperation

定义在参数上:@ApiParam

/**
 * 

* 讲师 前端控制器 *

* * @author QiuQiu&LL * @since 2021-06-19 */ // @Api(description = "讲师管理") @Api(tags = "讲师管理") @RestController @RequestMapping("/admin/edu/teacher") public class TeacherController { @Autowired private TeacherService teacherService; @ApiOperation("查询所有讲师列表") @GetMapping("/list") public List listAll() { List list = teacherService.list(); return list; } @ApiOperation(value = "根据ID删除讲师", notes = "根据ID删除讲师,逻辑删除") @DeleteMapping("/remove/{id}") public boolean removeTeacherById(@ApiParam(value = "讲师ID") @PathVariable String id) { return teacherService.removeById(id); } }