[강의 기록] AWS API Gateway Input/Output Mapping
* Reference Video: https://www.youtube.com/watch?v=HksMXyfFOyM
URL 구성
Resource + stage
stage 선택 시 development | demo | producti o n
이 강의에서는 스테이지의 이름을 students라고 지정.
stage 설정후 보여지는 화면
리소스를 설정하지 않고 스테이지를 설정할 경우
파이프라인을 자세히 보자면,
위의 두 박스는 요청
첫번째 Method Request에서는 유효성 검증 e.g. 인가(authorization)을 위한 JSON 웹 토큰을 패스했는지, API key, model schema를 통과했는지
두번째 Integration Request에서는 요청한 데이터를 가공 (reshape the data to make it more easily accessbile for lamada function)
Endpoint가 Lamda. 여기에 마침내 도달하면 Lamda 함수가 응답을 반환 -> Integration Response에서 reshape the data
content-type 설정 후, 응답 지정
참고: velocity.apache.org/enjine/devel/vtl-reference.html
혹은 문서 참고해 템플릿 예시 사용
ㄴtemplateing languagero
root element -> set a variable
schema, property, attribute 설정방법 참고하기
혹은 공통 오브젝트를 정의, 참고하기 위하여 Models 메뉴에서 설정
가이드에서 가져온 템플릿 수정하여 다음과 같이 응답 정의
-> 요것이 스키마
리소스에서 응답 모델 설정시, 입력한 스키마 불러올 수 있음
테스트싱 시, 람다 펑션이 전달한 데이터 말고, Intergration Response에서 정의한 더미 데이터가 내려옴
ㄴ이 테스트 기능은 필요할까? 응답, 요청을 보냈을 때 지정한 값이 제대로 내려오는지 확인하기 위한 용도
$inputRoot -> 응답의 root element을 의미
람다에서 받은 응답을 변수로 받아 처리
리마인드! 스트링 처리해야함
즉, 이 단계에서는 엔드포인트가 주는 응답을 변환, 가공하는 단계이다.
설정 저장하여 스테이지 배포했더니 다음과 같은 응답 나옴. 실제로 엔드포인트에서 전달한값 대신 가공한 데이터가 나옴. (json 형태, emailAddress라고 지정한, age는 내려주지 않는 등 필요한 정보만 받음, data 를 reshaping)
함수를 여러 개 지정해 커스터마다 다른 함수를 쓸수도 있음.(필요한 정보만 내려주는)
M ethod Response에서는 응답 헤더 확인? corps 여부 확인(원격 도메인에서 api 접근 가능한지)
응답 filtering 하려면