Ich versuche die HTTP-Passthrough-Funktionalität im API-Gateway, indem ich eine Ressourcenmethode an eine andere API übergebe. Ich möchte die Pfadparameter von der API-Gateway-URL an die Back-End-API übergeben, die diese Pfadparameter ebenfalls benötigt.AWS-API-Gateway - HTTP-Passthrough-Pfadparameter
Ich habe das folgende einfache Swagger Dokument versucht, dies zu testen:
{
"swagger": "2.0",
"info": {
"version": "2017-09-15T03:33:48Z",
"title": "api-gateway-http-test"
},
"schemes": [
"https"
],
"paths": {
"/subresource/{name}": {
"get": {
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "200 response",
"schema": {
"$ref": "#/definitions/Empty"
}
}
},
"x-amazon-apigateway-integration": {
"uri": "http://my.web.service.url/subresource/{name}",
"passthroughBehavior": "when_no_match",
"httpMethod": "GET",
"type": "http_proxy",
"requestParameters": {
"integration.request.path.name": "method.request.path.name"
}
}
}
}
},
"definitions": {
"Empty": {
"type": "object",
"title": "Empty Schema"
}
}
}
Als ich dies über Cloudformation zu API-Gateway versuchen bereitstellen, API-Gateway gibt mir diese Fehlermeldung:
Unable to put integration on 'GET' for resource at path '/subresource/{name}':
Invalid mapping expression specified:
Validation Result:
warnings : [], errors : [Invalid mapping expression parameter specified: method.request.path.name]
I habe online verschiedene Quellen angeschaut, und diese Art des Konfigurierens des "requestParameters" -Abschnitts scheint der empfohlene Weg zu sein, Pfadparameter an die Backend-API zu übergeben.
Was fehlt mir hier, dass dies nicht funktionieren würde?
Haben die Antwort Ihr Problem gelöst? – Kannaiyan
Ja das hat funktioniert, danke! Ich bin ziemlich neu bei Swagger, daher weiß ich immer noch nicht genau, welche Teile des Dokuments von API Gateway benötigt werden. – dsw88