#amazon-web-services #yaml #aws-api-gateway #amazon-sqs #serverless
#amazon-web-services #yaml #aws-api-gateway #amazon-sqs #бессерверный
Вопрос:
Я пытаюсь использовать этот плагин для бессерверного: — serverless-apigateway-service-proxy, и я хочу создать прокси-сервер apiGatewayService, который принимает запрос x-www-form-urlencoded и возвращает тело xml. Я могу сделать все это прекрасно с помощью следующего:
- sqs:
path: /testing-sqs
method: post
queueName: { "Fn::GetAtt": ["MySpecialQueue", "QueueName"] }
request:
template:
application/x-www-form-urlencoded: ${file(VTL/request.vtl)}
response:
- statusCode: 200
selectionPattern: '2d{2}'
responseTemplates:
application/xml: |-
#set($inputRoot = $input.path('
Однако, когда я тестирую в postman или на API Gateway, заголовок типа содержимого ответа - application / json. Я могу изменить это вручную в API Gateway, установив модель метода ответа интеграции как: application /xml => Empty.
https://i.stack.imgur.com/cU7kI.png
Как я могу указать модель ответа интеграции в моем бессерверном файле.yml вместо того, чтобы делать это вручную в API Gateway?
Ответ №1:
так что, похоже, нет способа сделать это с помощью responseParameters, которые я могу найти, однако я смог заставить его работать, переопределив заголовок шаблоном сопоставления:
- statusCode: 200
selectionPattern: '2d{2}'
responseTemplates:
application/xml: |-
#set($inputRoot = $input.path('
Однако, когда я тестирую в postman или на API Gateway, заголовок типа содержимого ответа - application / json. Я могу изменить это вручную в API Gateway, установив модель метода ответа интеграции как: application /xml => Empty.
))
https://i.stack.imgur.com/cU7kI.png
Как я могу указать модель ответа интеграции в моем бессерверном файле.yml вместо того, чтобы делать это вручную в API Gateway?
Ответ №1:
так что, похоже, нет способа сделать это с помощью responseParameters, которые я могу найти, однако я смог заставить его работать, переопределив заголовок шаблоном сопоставления:
))
#set($context.responseOverride.header.Content-Type = 'application/xml')
))
Однако, когда я тестирую в postman или на API Gateway, заголовок типа содержимого ответа — application / json. Я могу изменить это вручную в API Gateway, установив модель метода ответа интеграции как: application /xml => Empty.
https://i.stack.imgur.com/cU7kI.png
Как я могу указать модель ответа интеграции в моем бессерверном файле.yml вместо того, чтобы делать это вручную в API Gateway?
Ответ №1:
так что, похоже, нет способа сделать это с помощью responseParameters, которые я могу найти, однако я смог заставить его работать, переопределив заголовок шаблоном сопоставления: