본문 바로가기

회고/aws&docker fastcampus

AWS/Docker 클라우드 패스트캠퍼스 챌린지 30일차

728x90
반응형

[API gateaway와 Lambda 싱크 (GET, POST)]

 

Amazon API Gateway에서 GET API를 만들어야 한다. 따라서 프로토콜은 REST, 새 API와 이름 및 엔드포인트는 지역으로 생성한다. RESTFUL하게 만들어야 하기 때문에 URL 자체에서 리소스를 알 수 있도록 작성한다. 메서드 생성, 리소스 생성이 있는데 작업을 통해서 가능하다

 

리소스 생성을 먼저 한다. 리소스 이름은 conference로 하고 CORS 활성화는 나중에 한다. 리소스 생성이 끝나면, 다시한번 /conference 아래에 /users를 생성한다. 리소스 경로에 다시한번 /{user_id}로 만든다. 사용자의 id가 입력되면 된다.

 

메서드생성으로 최종적으로 GET을 한다. 통합유형은 람다함수, 리전도 그대로 유지하고 함수 이름을 get으로 만든다. 그러면 메서드가 완성된다. 하지만 path 경로를 json으로 변경해야 한다. 따라서, 통합 요청에 들어온 데이터를 매핑 템플릿으로 요청 본문 패스스루를 정의된 템플릿이 없는 경우에서 application/json을 설정한다.

 

템플릿 생성에서 우리가 만들어준 user_id를 넣어줄 수 있도록 한다. 

 

{
"user_id" : "$input.params('user_id')",
"type" : "$input.params('type')
}

json 구조를 람다한테 전달할 수 있다. 테스트를 통해서 확인이 가능하다.

 

POST API를 만들기 위해서 이번에는 GET이 아닌 POST 메서드를 만든다. POST는 /conference 경로가 다이다. GET과 달리 요청 본문 패스스루르 하지 않는다. 애초에 들어오는 데이터 자체가 쿼리로 들어오지 않기 때문에 별다른 설정을 할 필요가 없다. dynamoDB 확인하면 데이터 보내는 테스트 결과를 확인할 수 있다. 메서드 요청에서 요청본문에서 모델을 추가한다. 요청 검사기를 추가할 수 있는데 유효성을 추가할 수 있다.

 

모델 스키마는 properties를 삽입한다. 유효성을 추가하면 잘못도니 요청에 대해서는 오류를 반환한다. POST는 json 형식으로 오기 떄문에 매핑 템플릿이 필요가 없다. API 배포를 위해서 CORS를 배포해야 한다. CORS를 활성화한다. API 배포를 위한 스테이지를 새로 생성한다. 스테이지에서 API 엔드포인트를 확인할 수 있다.

 

[API gateway와 Front-end 연동]

 

기존에 작성했던 Front에서는 로그인에 관계없이 스캔한 내용을 쭉 뿌려주도록 한다. 새롭게 function을 하나 추가하낟.

 

function load_data() {
 $.ajax({
  url : '..../users/*',
  method : 'get',
  success:function(r) {
   console.log(r);
   r['items'].forEach(function(item){
     console.log(item);
   })
  },
  complete: function(r) {
   console.log(r);
  }
 })
 load_data();
}

javascript에 해당 내용을 추가하면 새롭게 등록이 될때마다 aws와 연동하여 데이터가 생성된다.

 

 

 

필수 링크 확인

=> https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

728x90
반응형