8

我有一些用普通的旧快递写的私人 api。是时候放出它并提供一些 api 文档了。

我不希望(至少现在)它重写我的快速应用程序以将 api 文档集成到代码中。主要是因为我不确定要使用什么框架或规范来记录我的 api,所以我真的不想锁定一件事。

我想将文档作为我的 api 下的子资源的一部分提供(即我不想运行不同的服务器或子域)。也许是'/api/docs'。一个加号也是我可以嵌入到我的应用程序中的 UI,它可以解析文档并至少提供一个很好的 html 文档演示(api 交互是一个加号)。

swagger-node之类的东西很酷,但需要我重新编写所有快速代码以集成 swagger。那时我有一笔巨额投资,而且我与 swagger 紧密相连。

有没有办法以对现有路线的侵入性最小的方式提供招摇或 iodocs 或其他东西来记录我的 api?

编辑:

我可以从手写文档中提供 Swagger 规范。我看到的问题是您必须basePath在 swagger 文档中定义。这并不能真正让我在不同的域下轻松部署。

4

1 回答 1

7

有很多 node.js 工具可以将 Swagger 与您的应用程序集成,我认为它们提供了不同的方法。您可以在此处找到此类集成的列表 - https://github.com/webron/swagger-spec/#nodejs - 但我可以告诉您,还有其他工具未在此处列出。您可以尝试在 github 上搜索 swagger 和 node/express。

至于手册规范和 basePath - Swagger 2.0 实际上为您解决了这个问题。您可以使用在线编辑器 - http://editor.swagger.io - 以更人性化的 YAML 形式编写规范,然后您可以将其导出为 JSON。与 Swagger 1.2 和之前的版本不同,basePath 现在被拆分为三个属性—— schemes(http、https)、host(域、端口)和basePath(应用程序的根上下文)。这些属性都不是强制性的,它们都默认为服务于 swagger.json 文件(规范本身)的任何内容。schemes默认为方案服务 swagger.json,host默认为用于服务 swagger.json 的主机,basePath并将为\除非明确指定。我相信这应该可以解决您对 basePath 的担忧。

于 2014-12-23T12:13:20.240 回答