我通過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代理。