AWS API 网关集成响应模板

问题描述 投票:0回答:1

我使用 openapi 3.0 构建我的 APIGW 端点,我的 APIGW 调用 ECS Fargat 服务运行状况端点 (

/actuator/health
)。当我看到“状态”:“UP”时,我试图更改“
$context.responseOverride.status
”并添加新字段。问题总是“
$input.path('$')
”为空。当我使用“
$input.json('$')
”获取对象值而不是文本格式值时,“
$input.json('$').toString()
”无助于设置相同的对象值。“
$input.body
”打印对象。

/sample:
  get:
    response:
     "200":
       content:
         application/json:
           schema:
             $ref: "some component"  
    x-amazon-apigateway-integration:
      timeoutInMillis: 29000
      uri : "https://<<ECS Fargate Service Endpoint>>/actuator/health"
      type: "HTTP"
      httpMethod: "GET"
      connectionType: "VPC_LINK"
      connection_id: <<some value>>
      passthroughBehaviour: "when_no_match"
      response:
        default:
          statusCode: "200"
          responseTemplates:
            application/json: "#set($inputRoot = $input.path('$'))\n{\n\"status\":\"TEST\"\n}"
            contentHandling: "CONVERT_TO_TEXT"
amazon-web-services aws-api-gateway velocity-template-language
1个回答
0
投票

尝试使用简单引号并在字符串内转义双引号

'#set($inputRoot = $input.path($))\n{\n\"status\":\"TEST\"\n}'
© www.soinside.com 2019 - 2024. All rights reserved.