首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Open中指定的文档不会从API网关导出

Open中指定的文档不会从API网关导出
EN

Stack Overflow用户
提问于 2017-04-05 17:37:48
回答 2查看 1.6K关注 0票数 3

我通过Open规范指定了我的AWS网关API。规范包含了大量文档,我希望客户端开发人员在与API集成时使用这些文档。但是,我们添加到Open规范中的文档似乎不是从API导出的,因此无法使用。

如前所述,我从JSON中的Open规范开始。我使用CloudFormation AWS::ApiGateway::RestApi资源将其导入到API。

在此之后,我将API部署到一个阶段,最后,使用aws从这个API+stage导出文档:

代码语言:javascript
复制
aws apigateway get-export \
    --parameters extensions='documentation' \
    --rest-api-id abc123 \
    --stage-name api \
    --export-type swagger \
    ./docs.json

这个导出似乎缺少了许多重要的文档属性,比如descriptionpattern

在我的API中有一个示例Open参数:

代码语言:javascript
复制
{
    in: 'path',
    name: 'service',
    type: 'string',
    required: true,
    pattern: '^[-a-zA-Z0-9]+$',
    description: 'Name of the Service (document) to retrieve.'
}

当我用上面的aws命令导出它时,我得到:

代码语言:javascript
复制
{
    "name" : "service",
    "in" : "path",
    "required" : true,
    "type" : "string"
}

descriptionpattern属性都已从文档导出中删除,这很糟糕,因为它们实际上是该参数的文档的主要部分。

还值得一提的是,如果我在Also (Swagger+API网关扩展)中导出相同的API,就会得到与文档导出相同的参数定义。

同样值得一提的是,如果有区别的话,集成都是基于Lambda代理的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-05 18:44:05

导入Swagger模板后,API网关将API定义及其文档拆分到两个单独的实体中。这允许您独立地修改和部署这两者。

导出功能只输出部署到某个阶段的任何内容。导入Swagger模板将导致导入API定义和文档部分。但是,看起来您只部署了API定义。在导出文档可用之前,必须显式地发布文档。

正如您所指出的,您还可以使用CLI发布新版本的文档:

aws apigateway create-documentation-version \ --rest-api-id abc123 \ --documentation-version 1 \ --stage-name api

票数 3
EN

Stack Overflow用户

发布于 2017-04-05 18:42:53

在API网关团队的帮助下,这个问题已经解决了。

我的工作流程中似乎缺少了一个步骤。在部署API之后,必须部署文档:

代码语言:javascript
复制
aws apigateway create-documentation-version \
    --rest-api-id abc123 \
    --documentation-version 1 \
    --stage-name api

完成此操作后,导出命令将生成文档,而不是以前所显示的API定义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43238034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档