DLX Dev Everything Engineer

swagger让大家都开心

2020-02-28

java程序员,尤其是web开发的,日常工作流中肯定绕不开以下事务:

1、写好接口,UT也写了,接下来要发布测试版本前后端联调,这时候需要给前端同事提供接口文档。(有经验的java程序员在项目紧急的时候,也可以先分析理解需求后马上写出接口文档提供给前端,前后端同时开发也是阔以的,不过对于后端程序员来说工作量并没有减少呢)。如何能够快速准确的提供接口文档给前端同事呢?如果后面联调发现问题修改了代码又要刷新接口文档会不会很麻烦(这个很关键)?

2、很多ToG ToB的项目要求提供开发文档,详细设计里面很大的篇幅要去描述接口。这时候让程序员去写大篇幅的文档,会把他们逼疯。 从测试的角度看,如果后端程序员递交过来一份几十页的接口文档,处处充满了敷衍的痕迹,如果又看到model变量命名不规范,心情是可想而知的。如果几处笔误导致联调bug,debug一通下来想必任何人都要吐血。 从管理者的角度看,能够不费吹灰之力搞定接口文档的事情,起码可以把人力成本降低10% 而swagger就解决了上述问题。 我们需要做的只是在部分类,方法,model对象上加注解。 导出的接口文档效果:

public class SwaggerExportTest {
@Test
    public void exportSwagger2md() throws MalformedURLException {
        // 输出Markdown到单文件
        Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
                .withMarkupLanguage(MarkupLanguage.MARKDOWN)
                .withOutputLanguage(Language.ZH)
                .withPathsGroupedBy(GroupBy.TAGS)
                .withGeneratedExamples()
                .withoutInlineSchema()
                .build();

        Swagger2MarkupConverter.from(new URL("http://10.10.10.195:18088/v2/api-docs"))
                .withConfig(config)
                .build()
                .toFile(Paths.get("d:/temp/docs/markdown/generated/all"));

    }
}


Comments

Content