@
sagaxu kotlin 官网的 api 文档只是 class/function 的接口文档. 但是, 前后端分离的开发模式, 后端需要提供给前端的接口文档, 不光包括 api 接口的参数是什么, 还要包括, 返回的 json 结构是一个什么样的树状结构的描述, 每个字段的业务含义的描述.
类似于这张图片描述的样子:
http://loveinshenzhen.github.io/img/quick_start_api_doc.png阿里的 rap2 我没有尝试过, 从它 GitHub 的 wiki 页面里:
https://github.com/thx/rap2-delos/wiki/user_manual , 我猜测,他有些类似 Swagger, 需要用 yaml 或者 json 格式的文件, 描述和定义接口. 然后前后端都根据这份接口契约, 来进行开发.
可是, 一旦需要调整接口, 就得先修改接口契约, 然后再回头在后端改代码. 一旦后端代码修改了, 而契约没有修改, 就会造成自动生成的文档与后端实现不一致了.
关于 Swagger, SpringMVC 或者 Spring Boot 也提供 Springfox 这一工具,也是通过注解方式, 生成 swagger json 描述文件. 参考这篇文章里的描述:
https://www.jianshu.com/p/349e130e40d5因为要遵循 swagger 的标准, 所以提供了多个不同的注解. 对使用者来说, 使用麻烦,增加了心智负担.
我的框架只使用一种 @
Comment 这一个注解. 并且作为接口返回的 json 结构, 也是通过定义类的结构来实现的.
在字段上通过注解描述其业务含义. 通过类的层次结构, 自动生成 json 的结构和文档描述.
在开发这套框架之前, 我也是有考虑过 swagger 的, 但是我发现 swagger 并不能帮我有效的节省时间(没有解决我的痛点), 所以才决定按照自己的思路做了这么一套专注于后端 http api 接口的快速开发框架.
相比 rap2 这类"开发接口管理工具", 我希望的状态是, 每当后端 api 接口实现的代码修改了, 文档就自动修改了. 保证其一致性. 无须像 rap2 一样, 还需要独立部署一套"开发接口管理工具". 每次接口变更, 还得先在这套"开发接口管理工具"上更新接口契约(配置 /描述), 再回头去修改后端的代码实现. (因为没有使用过 rap2, 我只是根据文档介绍里的了解做的判断, 如果不是这么使用的, 那就无视这段话吧)