Dubbo-Api-Docs实现了哪些类似 Swagger的体验呢?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Dubbo-Api-Docs实现了哪些类似 Swagger的体验呢?

1358896759097293 2021-03-17 17:18:26 225

Dubbo-Api-Docs实现了哪些类似 Swagger的体验呢?

云服务器登录 云服务器设置
分享到
取消 提交回答
全部回答(2)
  • 1358896759097293
    2021-03-18 23:09:18

     提供一些描述接口信息的简单注解。  在提供者启动时解析注解并缓存解析结果。  在提供者增加几个 Dubbo-Api-Docs 使用的获取接口信息的接口。  在 Dubbo Admin 侧通过 Dubbo 泛化调用实现 Http 方式调用 Dubbo 接口的 网关。  在 Dubbo Admin 侧实现接口信息展示和调用接口功能。  下列情况中的参数直接展示为表单项,其他的展示为 JSON。  方法参数为基础数据类型的  方法参数为一个 Bean,Bena 中属性为基础数据类型的  很少的第三方依赖,甚至大部分都是你项目里本身就使用的。  可以通过 profile 决定是否加载,打包时简单地修改 profile 就能区分生产和测试,甚 至 profile 你本来就使用了。

    0 0
  • 苍霞学子
    2021-03-18 00:08:05

    Swagger 是一个规范和完整的前端框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 规范也逐渐发展成为了 OpenAPI 规范。

    Springfox 是一个集成了 Swagger,基于 Sring MVC/Spring Webflux 实现的一个 Swagger 描述文件生成框架,通过使用它定义的一些描述接口的注解自动生成 Swagger 的描述文件,使 Swagger 能够展示并调用接口。

    相信很多人都听说和使用过 Swagger 和 Springfox,这里就不再赘述了。

    Dubbo-Admin 中有接口测试功能,但是缺少接口描述的文档,所以该测试功能比较适合接口开发人员用于测试接口。而其他人想要使用该功能就必须先通过接口开发者编写的文档或者其他方式,了解清楚接口信息才能使用该功能测试接口。

    Dubbo 这边有没有集合文档展示和测试功能,可以不用写文档就能把接口直接给调用方,类似 Swagger/Springfox 的工具呢?

    之前做过一些调研,找到一些类似的工具:

    有些是基于 Springfox 做的,直接一个文本域放 JSON,与目前 Admin 中的测试功能大同小异。
    有些是直接基于 Swagger 的 Java 版 OpenApI 规范生成工具做的,能把一些基础数据类型的简单参数作为表单项展示。
    

    它们都有一个共同点:会把你的提供者变为 Web 项目。当然有些提供者是通过 web 容器加载启动的,甚至也有和 web 工程在一起的,那就无所谓了。

    但也有非 web 的提供者,为了文档我得把它变为 web 项目吗?(还要引入一堆 Web 框架的依赖?比如 Spring MVC?)或者说生产环境打包时,删除它的引用和代码里的相关注解? 有没有简单点的方式呢?

    OpenAPI 中没有 RPC 的规范,Swagger 是 OpenAPI 的实现,所以也不支持 RPC 相关调用。Springfox 是通过 Swagger 实现的 RESTful API 的工具,而 RESTful 又是基于 Web 的,Dubbo 没法直接使用。我们最终选择了自己实现:

    提供一些描述接口信息的简单注解。
    在提供者启动时解析注解并缓存解析结果。
    在提供者增加几个 Dubbo-Api-Docs 使用的获取接口信息的接口。
    在 Dubbo Admin 侧通过 Dubbo 泛化调用实现 Http 方式调用 Dubbo 接口的网关。
    在 Dubbo Admin 侧实现接口信息展示和调用接口功能。
    下列情况中的参数直接展示为表单项,其他的展示为 JSON。
        方法参数为基础数据类型的
        方法参数为一个 Bean,Bena 中属性为基础数据类型的
    很少的第三方依赖,甚至大部分都是你项目里本身就使用的。
    可以通过 profile 决定是否加载,打包时简单地修改 profile 就能区分生产和测试,甚至 profile 你本来就使用了。
    
    0 0
添加回答
阿里巴巴云原生
使用钉钉扫一扫加入圈子
+ 订阅

关注云原生中间件、微服务、Serverless、容器、Service Mesh等技术领域、聚焦云原生技术趋势、云原生大规模的落地实践

推荐文章
相似问题
最新问题