如何使用Swagger UI访问AWS API Gateway文档

22

我使用AWS Api Gateway创建了API。然后为所有实体(如API、RESOURCE、METHOD、MODEL等)编写了文档部分。然后,我使用AWS Gateway Console将文档发布到版本为1dev阶段。

但是我不确定我(或API的消费者)该如何访问文档?

有一个Export选项,可以将文档导出为SwaggerOpenAPI3。这将创建.json.yaml文件,然后消费者必须将这些文件导入Swagger UI中。但是,这不是提供每次更新文档时向所有消费者提供swagger文件的用户友好选项。

我想知道,在发布文档后,是否有任何方法使消费者可以通过http直接访问文档。因此,假设我的dev阶段api URL是 https://devapi.example.com/v1,那么像https://devapi.example.com/v1/help这样的内容应该启动带有最新发布的swagger文件的Swagger UI

更新1
在ASP.NET Web API或.NET Core中,您可以包括Swashbuckle来创建swagger文件,并且还具有Swagger UI工具的嵌入式版本。因此,在部署API后,用户可以直接从UI访问文档,例如https://devapi.example.com/swagger

我希望 AWS 网关能做同样的事情。在发布文档后,它应该通过一些预定义的资源路径使文档可用。

2
我认为这是一个真正的问题。我在AWS中找不到任何信息。能否解释一下为什么会对这个问题进行投票? - LP13
如果API网关符合OpenAPI 3文件位置上的“应该”条款,您可以尝试使用openapi.jsonopenapi.yaml - bishop
也许我没有正确地提问。我想知道AWS API Gateway是否可以使用Swagger UI显示文档?开箱即用。 - LP13
2个回答

6
AWS API Gateway只能导出文档,但不能呈现UI应用程序。网关中没有可以呈现文档的终端节点。您可以使用第三方工具或 AWS API Gateway开发者门户来允许用户浏览API文档。您可能会发现这个博客有帮助。

1
谢谢A.Khan ;-) 这篇博客文章现在有点过时了,最好直接转到开发者门户网站(上面链接的)并按照自述文件进行操作。 - blomster
1
很高兴你觉得这个答案有用,Mike ;) - A.Khan

-6

Micro Swagger 从 Amazon API Gateway 导入 Swagger 规范并从中提供 Swagger UI。

您可以在 EC2 实例上保持其运行状态:

npm i -g micro-swagger
micro-swagger start

它将使用实例的IAM角色从API Gateway下载Swagger规范。您的CI/CD流水线可以在部署时重新启动/刷新Micro Swagger。您的客户可以在实例的域中查看最新的API文档。


3
虽然这可能解决问题,但它并没有解释为什么或如何回答这个问题。请“包括解释”,因为这真的有助于提高您的帖子质量。记住,您正在为将来的读者回答问题,而这些人可能不知道您建议的原因。 - Samuel Philipp
@SamuelPhilipp,我已经更新了答案并加入了解释。 - Harish KM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接