AWS API gateway + Lambda로 REST API를 만드는 중에 작은 문제가 생겼다.
lambda에서는 201, 400 같은 응답 코드를 전송하고 싶어도 lambda의 응답값이 API gateway를 통해서 전송이 되어서 무조건 응답코드가 200으로 보내진다. lambda에서 생성한 응답 코드와 동일하게 실제 Response의 응답값이 변경되었으면 한다.
간단하게 아래의 코드로 수정할 수 있었다.
아래와 같은 형태로 보내면 responseBody.status의 값이 실제 응답 객체에 반영된다
const responseBody = await controller.login(body);
return {
"statusCode": responseBody.status,
"headers": {"content-type": "application/json"},
"body": JSON.stringify(responseBody),
"isBase64Encoded": false
};
위의 사진을 보면 201 코드가 전달되는 것을 확인할 수 있다
'Graduation Project' 카테고리의 다른 글
S3 + CloudFront 비디오 스트리밍 (0) | 2024.07.03 |
---|---|
[Error 😥] Serverless Framework 사용 도전기 (0) | 2024.07.02 |
DynamoDB 키 디자인 패턴 적용하기 (1) | 2024.06.25 |
Oauth란 (0) | 2024.06.24 |
Node.js chatGPT API v4 연결하기 (0) | 2024.06.24 |