微服务开发实战Amazing ArchJava技术升华

微服务 REST API 设计原则

2019-02-08  本文已影响0人  老瓦在霸都

REST API 设计原则

REST 方法

URL 路径

URL 查询参数

Resource Representations 资源表示

JSON Attributes

Security

API Documentation

API 文档工具

API 文档的生成有很多框架和工具, 现在比较流行的有三种:

1) RESTful API Modeling Language (RAML)

顾名思义, 它是一个RESTful API 的建模语言, 好象UML 类图那样, 通过这个建模语言描述的 raml 文件来定义你的 API 格式, 然后通过工具(raml2html)来生成易读的HTML 文档, 你需要手动编写 raml 文件, 然后生成所需文档.
它已经形成了一套规范和工具, 例如
• API Workbench: 一个功能完善的IDE, 可用来设计, 构建,测试 RESTful API, 和相应文档生成和分享
• RAML Java Client Generator: 一个可以基于 RAML 文档自动生成Java 客户端代码的工具
• RAML2HTML: 一个Node.js 工具, 将 RAML 文件转化成易于阅读的 HTML文档.

2) Swagger UI

它是一个更加流行的文档生成框架, 强调从代码中全自动生成 API 文档
这个框架有三个主要的组件:
• Swagger 是它的规范部分, 一套描述 RESTful 服务的规则, 类似于 RAML
• Swagger UI 是它的渲染部分, 它就象 RAML2HTML 那样生成易读的HTML文档, 用户无需用任何客户端就可基于Swagger 规范用它自动生成的客户端进行API测试
• Springfox 是它的生成部分, 通过Java代码, SpringMVC 和 Swagger 的注解来自动生成API 文档.

3) Spring REST Docs

这是 Spring 生态圈, 它基于API 测试来生成 AsciiDoc 文档, 你也可以自己编写一些描述性的 AsciiDoc 文档, 这些 AsciiDoc 文档可以通过它提供的 maven 插件自动生成易读的 HTML 文档, 相比前两者, 它介于手动和全自动之间, 相当于半自动的工具.
如果你是一个新项目, 在设计阶段就可以采用 RAML 来定义你的 API, 如果是老项目, 采用 Swagger 会更省力, 当然 Spring REST Docs 更加符合测试驱动开发的理念, 既可以通过测试来自动生成文档, 也可以手动添加说明, 推荐使用

参考资料

上一篇 下一篇

猜你喜欢

热点阅读