如何将标头从请求传递到集成响应?

     2023-03-24     227

关键词:

【中文标题】如何将标头从请求传递到集成响应?【英文标题】:How to pass header from request to integration response? 【发布时间】:2021-12-18 12:52:15 【问题描述】:

对 API 网关的请求将包含某些标头,例如X-header,也必须在响应中返回。因此,这些标头必须从请求传递到集成(在本例中为 SQS 队列)返回响应(集成响应)。

此刻,头部从请求传递到集成;但这不能在集成响应中访问(至少据我所知)。

地形代码:

resource "aws_api_gateway_integration" "integration" 
rest_api_id = gateway.id
resource_id = aws_api_gateway_resource.resource.id
http_method = aws_api_gateway_method.method.http_method
type = "AWS"
integration_http_method = "POST"
uri = "arn:aws:apigateway:XXXX:sqs:path/XXXXX/$var.queue_name"
credentials = aws_iam_role.iam_role_for_sqs.arn
passthrough_behavior = "NEVER"
request_parameters = 
"integration.request.header.Content-Type" = "'application/x-www-form-urlencoded'",
"integration.request.header.X-header" = "method.request.header.X-header" ,






  resource "aws_api_gateway_integration_response" "response" 
  rest_api_id = var.gateway.id
  resource_id = aws_api_gateway_resource.resource.id
  http_method = aws_api_gateway_method.method.http_method
  status_code = aws_api_gateway_method_response.response.status_code
  response_parameters = 
        "method.response.header.X-header" = "context.responseOverride.header.X-header", //how to access the header?
  


resource "aws_api_gateway_method_response" "response" 
  rest_api_id = var.gateway.id
  resource_id = aws_api_gateway_resource.resource.id
  http_method = aws_api_gateway_method.method.http_method
  status_code = 200
  response_parameters =  
        "method.response.header.X-header" = true,
       
  response_models = 
    "application/json" = "Empty"
  

我可以在文档中找到有关 requestOverride 和 responseOverride 的内容,但无法在集成阶段设置 requestOverride。

如何访问在集成阶段传递给集成响应的请求参数?

省略了部分代码。重要的部分是如何访问集成响应中的标头。

【问题讨论】:

【参考方案1】:

解决了: 覆盖响应模板中的标头将允许您通过 input.params() 访问标头

response_templates = 
    "application/json" = <<EOT
    #set($context.responseOverride.header.X-header = "$util.escapeJavaScript($input.params().header.get('X-header'))"))
                    
        
    EOT

【讨论】:

真的有用吗? X-header 好像不行。 “X 减去标题?”请确认。您必须将其作为占位符。你应该提到它。 @doug65536 嗨,感谢您的提问。是的,它确实有效:) 只是为了清楚,这不是一个数学表达式。因此 - 应该读作连字符

如何使用 lambda 代理集成激活将 CORS 标头添加到 AWS API Gateway 响应

】如何使用lambda代理集成激活将CORS标头添加到AWSAPIGateway响应【英文标题】:HowtoaddCORSheadertoAWSAPIGatewayresponsewithlambdaproxyintegrationactivate【发布时间】:2017-10-0102:33:25【问题描述】:我使用lambda作为带有lambda代理集成的AWSAPIGateway的... 查看详情

如何将请求标头传递给 graphql 解析器

】如何将请求标头传递给graphql解析器【英文标题】:Howtopassrequestheadersthroughtographqlresolvers【发布时间】:2018-09-2109:29:26【问题描述】:我有一个由JWT授权的graphql端点。我的JWT策略验证JWT,然后将用户对象添加到请求对象。在一... 查看详情

如何将请求标头信息传递给 Angular6 应用程序(JWT 通过请求标头发送)

】如何将请求标头信息传递给Angular6应用程序(JWT通过请求标头发送)【英文标题】:HowtopassrequestheaderinformationtoAngular6app(JWTsendbyrequestheader)【发布时间】:2019-08-2608:15:25【问题描述】:通过其他外部应用程序(例如Web应用程序防... 查看详情

如何将自定义标头从 mvc 项目发送到 Web api 项目?

】如何将自定义标头从mvc项目发送到Webapi项目?【英文标题】:Howtosendcustomheadersfrommvcprojecttoawebapiproject?【发布时间】:2021-10-1619:58:47【问题描述】:我有两个应用程序同时运行。在我的mvc项目中,我有一个中间件,它将使用Temp... 查看详情

将上下文从 Web 请求的控制器传递到数据库层

...描述】:我有REST服务:每个请求都有一个带有JWT令牌的标头每个控制器从请求中获取参数(变量、正文..)并将它们传递给数据层我需要将每个请求的标头中的JWT令牌传递给相应的数据层方法,如下所示:func(a*App)Up 查看详情

如何将请求标头添加到 outboundGateway spring integration dsl

】如何将请求标头添加到outboundGatewayspringintegrationdsl【英文标题】:HowtoaddrequestheaderstooutboundGatewayspringintegrationdsl【发布时间】:2018-10-1500:31:57【问题描述】:我在spring集成dsl中找不到向outboundGateway添加标头的功能。.handle(outboundG... 查看详情

如何将自定义响应标头添加到来自 azure blob 的响应?

】如何将自定义响应标头添加到来自azureblob的响应?【英文标题】:Howtoaddcustomresponseheadertoaresponsecomingfromazureblob?【发布时间】:2021-12-2807:04:17【问题描述】:我正在向我的blob存储发出curl请求。$curl-kv\'https://myazstorage.blob.core.wind... 查看详情

nginx最全操作——nginx反向代理(5)

...的响应缓冲。本文介绍代理服务器的基本配置。您将学习如何通过不同的协议将请求从NGINX传递到代理服务器,修改发送到代理服务器的客户端请求标头,以及配置来自代理服务器的响应的缓冲。代理通常用于在多个服务器之间... 查看详情

如何使用 Apache 将 cookie 值附加到响应位置标头的末尾?

】如何使用Apache将cookie值附加到响应位置标头的末尾?【英文标题】:HowtoappendcookievaluetoendofresponseLocationheaderwithApache?【发布时间】:2011-04-2201:07:21【问题描述】:我有一个发出HTTP重定向的页面。我需要将当前会话ID(jsessionid)附... 查看详情

如何在将请求传递给上游服务器之前删除 Nginx 中的客户端标头?

】如何在将请求传递给上游服务器之前删除Nginx中的客户端标头?【英文标题】:HowtoRemoveClientHeadersinNginxbeforepassingrequesttoupstreamserver?【发布时间】:2017-11-1602:53:23【问题描述】:上游服务器是wowza,如果我不在应用程序级别启用... 查看详情

如何将令牌传递给 JQGrid 中的请求标头

】如何将令牌传递给JQGrid中的请求标头【英文标题】:HowtopassaTokentoRequestHeadersinJQGrid【发布时间】:2021-08-1113:21:38【问题描述】:我的项目在带有MVC的ASPNetCore中。我在视图中有一个JQGrid。它运行良好。现在我必须使用属性授权... 查看详情

如何将承载令牌添加到 HTTP 请求的标头?

】如何将承载令牌添加到HTTP请求的标头?【英文标题】:HowdoIaddaBearerTokentotheheaderofaHTTPrequest?【发布时间】:2019-12-2006:32:52【问题描述】:我无法弄清楚如何设置授权标头,其中授权作为键,不记名令牌作为值。我已经完成了一... 查看详情

如何从 cookie 中保存 XSRF 令牌并将其传递给 Gatling 的下一个请求标头中的服务器

】如何从cookie中保存XSRF令牌并将其传递给Gatling的下一个请求标头中的服务器【英文标题】:HowcansaveXSRFtokenfromcookieandpassittoserverinnextrequestheaderinGatling【发布时间】:2020-10-1908:34:23【问题描述】:我正在尝试使用Gatling执行负载测... 查看详情

如何从 EB 响应中删除标头

】如何从EB响应中删除标头【英文标题】:HowtoremoveheaderfromEBresponse【发布时间】:2018-06-1110:19:45【问题描述】:我正在尝试从EB服务中删除响应标头。EB配置:64bitAmazonLinux2017.03v2.7.1runningDocker17.03.1-ce运行:FROMpython:3.6.1也使用flask... 查看详情

将单个 HTTP 标头的多个值添加到请求或响应的标准

】将单个HTTP标头的多个值添加到请求或响应的标准【英文标题】:StandardforaddingmultiplevaluesofasingleHTTPHeadertoarequestorresponse【发布时间】:2022-01-1409:43:34【问题描述】:如果我想将值列表添加为HTTP标头,是否有标准方法可以做到这... 查看详情

将单个 HTTP 标头的多个值添加到请求或响应的标准

】将单个HTTP标头的多个值添加到请求或响应的标准【英文标题】:StandardforaddingmultiplevaluesofasingleHTTPHeadertoarequestorresponse【发布时间】:2011-03-0700:42:17【问题描述】:如果我想将值列表添加为HTTP标头,是否有标准方法可以做到这... 查看详情

如何使用命令(API)和查询(odata)控制器将位置标头传递给响应

】如何使用命令(API)和查询(odata)控制器将位置标头传递给响应【英文标题】:HowtopassLocationheadertoresponsewithcommand(API)andquery(odata)controllers【发布时间】:2020-03-0306:46:38【问题描述】:场景您好,我有用ASP.Netcore2.2编写的命令AP... 查看详情

如何将日期标头添加到 WebRequest

】如何将日期标头添加到WebRequest【英文标题】:HowtoaddDateHeadertoanWebRequest【发布时间】:2018-06-2014:53:29【问题描述】:我正在尝试向WebRequest标头添加“日期”。但它返回错误,因为“必须使用适当的属性或方法修改“日期”标... 查看详情