我通过Open API规范指定了我的AWS API网关API。规范包含了许多我希望客户端开发人员在与API集成时使用的文档。但是,似乎我们添加到Open API规范的文档不会从API网关导出,因此不能用于消费。Open API中指定的文档不会从AWS API网关导出
如前所述,我从JSON中的Open API规范开始。 我使用CloudFormation AWS::ApiGateway::RestApi
资源将其导入API网关。
这之后我的API部署到一个阶段,最后,使用此API +阶段导出文件的AWS CLI:
aws apigateway get-export \
--parameters extensions='documentation' \
--rest-api-id abc123 \
--stage-name api \
--export-type swagger \
./docs.json
这种出口似乎缺少了很多重要的文件属性,例如中如description
和pattern
。
在我的API的例子Open API的参数:
{
in: 'path',
name: 'service',
type: 'string',
required: true,
pattern: '^[-a-zA-Z0-9]+$',
description: 'Name of the Service (document) to retrieve.'
}
当我出口这与AWS-控制台的命令,我得到:
{
"name" : "service",
"in" : "path",
"required" : true,
"type" : "string"
}
的description
和pattern
性都被剥夺从文档导出这是不好的,因为他们真的是这个参数的文档的主要部分。
另外值得一提的是,如果我在AWS控制台(Swagger + API网关扩展)中导出相同的API,那么我将获得与从文档导出时相同的参数定义。
也可能值得一提的是,如果这样做有所不同,那么这些集成都基于Lambda代理。