【VIDEO_Parent】-项目搭建与创作者接口-集成SWagger2

2023-11-29 22:03:55 浏览数 (2)

前言

在工程当中创建一个公共模块 common 模块,并且修改打包方式为 pom

代码语言:html复制
<packaging>pom</packaging>

添加 swagger 依赖

代码语言:html复制
<dependencies>
    <!--swagger-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <scope>provided</scope>
    </dependency>
    <!--lombok插件-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

common 模块下的 src 删除不需要,在 common 下面创建子模块 common_base 模块

在模块 common_base 中,创建 swagger 的配置类

代码语言:java复制
/**
 * @author BNTang
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket webApiConfig() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                // 排除指定的路径,不生成api
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();
    }

    private ApiInfo webApiInfo() {
        return new ApiInfoBuilder()
                .title("视频中心API文档")
                .description("课程中心微服务接口")
                .version("1.0")
                .contact(new Contact("BNTang", "https://www.cnblogs.com/BNTang", "303158131@qq.com"))
                .build();
    }
}

在模块 service 模块中引入 common_base

代码语言:html复制
<!--common_base-->
<dependency>
    <groupId>top.it6666</groupId>
    <artifactId>common_base</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

在 service_video 启动类上添加注解

代码语言:java复制
@ComponentScan(basePackages = {"top.it6666"})

然后在 Controller 当中添加 api 注解

代码语言:java复制
/**
 * <p>
 * 创作者 前端控制器
 * Api 注解代表:分组
 * </p>
 *
 * @author BNTang
 * @since 2021-03-27
 */
@RestController
@RequestMapping("/service_video/author")
@Api(tags = "作者组")
public class AuthorController {

    /**
     * 使用代码生成器生成的 service 当中已经有很多的基础服务,直接调用即可
     */
    private final AuthorService authorService;

    public AuthorController(AuthorService authorService) {
        this.authorService = authorService;
    }

    /**
     * <p>
     * 获取创作者列表
     * </p>
     */
    @ApiOperation(value = "所有的作者列表")
    @GetMapping("/getAuthorList")
    public List<Author> getAuthorList() {
        return authorService.list(null);
    }

    /**
     * <p>
     * 根据Id删除创作者
     * </p>
     */
    @ApiOperation(value = "逻辑删除作者")
    @DeleteMapping("/deleteAuthor/{id}")
    public boolean deleteAuthor(@ApiParam(name = "id", value = "作者Id", required = true) @PathVariable String id) {
        return authorService.removeById(id);
    }
}

详细说明请参考:https://www.cnblogs.com/zhuhui-site/p/10092322.html

重启工程访问:http://localhost:8001/swagger-ui.html

swagger2 汉化

汉化 2.7 以下的版本,首先在自己项目当中的 resources 中创建 META-INFresourece 文件夹如下图

需要注意有一个 / 不是以 . 来进行创建

swagger-ui.html 复制到自己工程的 META-INFresourece 中, 添加两行 js js内容如下

代码语言:javascript复制
<!-- 加入国际化的js -->
<script src="webjars/springfox-swagger-ui/lang/translator.js" type="text/javascript"></script>
<script src="webjars/springfox-swagger-ui/lang/zh-cn.js" type="text/javascript"></script>

最后

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞