我一直在寻找为我正在处理的项目的 REST API 自动创建文档的方法。首先,Hydra(http://www.hydra-cg.com)提出了一个设计Web API的有趣想法。后来一些同事建议我使用 Swagger 2.0 (http://swagger.io) 作为代码生成器。然后,我意识到这两个规范都可以解决记录 REST API 的相同问题。
使用Hydra或Swagger规范的缺点/好处是什么?
谢谢!!!
Swagger已经成熟,支持广泛的语言和框架。它不会强迫您以特定样式编写 API,如果您只想记录现有 API,它应该更适合。
Hydra看起来像是开发REST API的有趣框架,但尚未被任何标准组织和行业采用,使其成为真正的标准。目前,这只是W3C社区团体的非官方草案。它看起来也非常新,并为某些语言提供了实验性工具,这些语言似乎还没有准备好用于生产。我什至不确定您是否可以在不显着更改 API 的情况下将框架与现有 API 集成。
正如inf3erno所说,Hydra更专注于REST服务的原始定义,生成的文档只是一个副产品。乍一看,在我看来,他们正在使用类似于 HATEOAS 的原则,并试图使用词汇表将该技术形式化。我认为有充分的理由坚持使用更简单的现代REST服务定义,并且不要通过添加HATEOS或词汇表来使开发变得复杂。
Hydra 是关于创建一个特定于 REST 的词汇,所以在它成为标准之后,每个 REST API 都可以使用该词汇,并且可以编写通用的 REST 客户端,就像浏览器目前在网络上面向人类用户一样。这是真正的 REST。 当前所谓的 REST API 不满足统一的接口约束,因为它们使用非标准解决方案。九头蛇将解决这个问题。这只是一个微不足道的细节,如果用 hydra 术语描述,则可以从 API 特定的词汇中生成文档。
A 不知道什么是招摇,但它似乎是同一问题的非标准解决方案。