swagger codegen 使用心得,以及开源插件改造,以及实时生成接口文档

因工作中重新构建系统,根据老板的委托组织一套框架功开发使用。

都是老代码了,所以在整个开发周期的痛点又很多,我这里集中解决了两个!  一个是前后台开发过程中的沟通,以及借口文档的在整个生命周期的统一,所以选择了swagger codegen 作为框架的基础配合改造过的swagger codegen 插件实现代码自动生成,配合改造后的借口文档生成插件实现借口文档动态生成。

使用心得:

1,引用工程基础包中的实体进入yaml文件中。插件改造之后的pom配置文件

通过对importMappings 以及typeMappings的配置可以实现对外部的引用

在yaml中引用直接通过

$ref: "#/definitions/Prop"

即可进行轻松引用。

<plugin>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>2.4.13-pactera</version>
    <executions>
        <execution>
            <id>spring-server</id>
            <phase>pre-clean</phase>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api/##
                    tet121.yaml,
                    tet122.yaml,
                    tet123.yaml
                </inputSpec>

                <language>spring</language>
                <output>${project.basedir}</output>
                <apiPackage>test.controller</apiPackage>
                <modelPackage>test.controller.dto</modelPackage>
                <!-- 非诚重要的配置,否则文件将要被覆盖 -->
                <skipOverwrite>false</skipOverwrite>
                <importMappings>
                    <importMapping>TestBean=test.json.TestBean
                    </importMapping>

                </importMappings>
                <typeMappings>
                    <typeMapping>TestBean=test.json.TestBean</typeMapping>
                </typeMappings>
                <generateSupportingFiles>false</generateSupportingFiles>
                <configOptions>
                    <dateLibrary>java8</dateLibrary>
                    <java8>true</java8>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

2,如何实现yaml中的继承

在definitons定义过程中加入discriminator即可实现,这样就可以通过在外部定义好实体之后,引入工程。子类也可以轻松的使用其定义的实现类,而不会被覆盖。

Result:
  discriminator: "type"
  description: "统一的响应返回类型。"
  type: "object"

这两点是我在使用过程中觉得难的地方。查了很多资料,查找不易。修改插件也不容易,不介意的话帮忙点个赞。

改造后插件 github地址   ,deploy到自身的maven私服中那么整个团队的人都可以用了。

https://github.com/wang249639015/swagger-codegen.git

如又疑问可加微信w249639015

此插件可以让整个借口代码的生成不感知,具体业务人员只需要关注自身的业务逻辑实现,如果又兴趣的话也可以在生成过程中,改造插件的ftl实现,发布dubbo自动生成,sofa等也可以实现。

如果觉得这个贴子以及插件对您工作效率有所提升,期待您的打赏可帮助定制各类插件。

你的支持是我前进的动力(一键生成pdf借口文档,html借口文档教程,后续提供。)

猜你喜欢

转载自blog.csdn.net/weixin_40669549/article/details/108125933