2

목표 : AWS-API 게이트웨이에서 자원 (경로)을 호출하는 방법을 얻으려면.요청 본문이 HTTP 메소드를 덮어 쓰고 있습니까?

진행 상황 : 통합 요청 단계에서 템플릿에 매핑 된 GET, PATCH, POST 방법이있는 끝점이 있습니다. 패치의 템플릿은 다음과 같습니다

"editJobsTemplate": { 
    "application/json": { 
    "method": "$context.httpMethod", 
    "job": "$input.json('$.job')" 
    } 
} 

this document를 사용하여 만들었습니다.

문제 : 패치 몸이 비어있는 경우 내가 얻을 리스폰스 같은 :

{ 
    "eventType": { 
    "method": "PATCH", 
    "job": "" 
    } 
} 

하지만 몸에 보낸 키와 '작업'을 가진 객체가있을 때 ...

{ 
    "job":"some text value" 
} 

는 응답이 보이는 같은 :

{ 
    "eventType": { 
    "job": "some text value" 
    } 
} 

EDIT 1

This은 API 게이트웨이 리소스 패널의 템플릿 스크린 샷입니다.

나는 this result

2 This이 컨텐츠 유형 헤더가 b.b3rn4rd의 응답에 따라, 응용 프로그램/JSON으로 설정되는 보여주는 것입니다 편집 및 this 쇼를 얻을 수와 우체부 테스트 그 후에 나는 응답을 받는다.

+0

첫 번째 코드 붙여 넣기가 실제로 템플릿입니까, 아니면 발췌 한 부분입니까? 테스트 기능을 사용하여 콘솔에서 테스트 해 보셨습니까? –

+0

배치를 위해 serverless를 사용하고 있으므로 귀하의 의견에 답변하기위한 스크린 샷을 추가했습니다. 첫 번째 붙여 넣기는 템플릿입니다. 또한 우편 배달부의 테스트를위한 스크린 샷을 추가했습니다. –

답변

1

엔드 포인트를 호출 할 때는 적절한 content-type 헤더를 지정해야합니다. 귀하의 경우에는 아마 Content-Type: application/json이고 그렇지 않으면 요청 매핑이 건너 뛰게되고 요청은 그대로 (λ?)로 전달됩니다. 또한

, 난 이미

가 있어야 "job": "$input.json('$.job')"으로, 또 다른 잠재적 인 문제를 발견 할 수 없습니다 :

"job" : $util.escapeJavaScript($input.json('$.job')) 따옴표를!

+0

헤더를 추가했습니다. 편집 한 스크린 샷을 추가했습니다. 나는 지금 응답으로 나쁜 끈을 얻는다. 요청에서 메서드를 가져 오기위한 테스트를 실행하고 있으므로 escapeJavaScript 유틸리티를 사용하지 않았습니다. 머리 부분을 고맙게 생각합니다. –

+0

따옴표를 신중하게 보지 못했습니다. –

+0

내가 게이트웨이를 사용하기 시작했을 때 비슷한 문제가 있다는 것을 의심하지 않았다. :) –

관련 문제