AWS API Gateway에서 모의를 만들어 보자.

계기



매니저 「테스트로 필요하기 때문에 외부 API의 모의를 만들어. API Gateway를 사용하면 간단하기 때문에.」
확실히 API Gateway 통합 요청의 통합 유형에 Mock 항목이 있습니다.
이것이라면 쉽게 할 수 있을 것 같다

API Gateway에서 모의 ​​만들기



  • Amazon API Gateway 콘솔에서 APIの作成 버튼에서 새 API 만들기
  • API 게이트웨이가 생성되었으므로 アクション 버튼> リソースの作成에서 API 엔드 포인트 설정 (필요한 경우 CORS 사용)
  • 엔드포인트가 만들어지므로 アクション 버튼 > メソッドの作成에서 메서드 만들기
  • 메서드 설정 화면에서 統合タイプMock로 설정

  • 상태 200에서 반환하고 싶은 경우


  • 통합 요청 매핑 템플릿 (Content-Type application/json)은 다음과 같습니다 (기본값 그대로)
  • {"statusCode": 200}
    
  • 통합 응답의 메소드 응답 상태가 200 인 매핑 템플릿에 반환하려는 값을 설정합니다

  • 상태 400에서 반환하고 싶은 경우


  • 통합 요청 매핑 템플릿 (Content-Type application/json)은 다음과 같습니다
  • {"statusCode": 400}
    
  • 메서드 응답의 レスポンスの追加에서 400 추가
  • 통합 응답의 統合レスポンスの追加에서 다음 설정을 구성합니다.
  • HTTP 상태 정규식: 400(통합 요청 값을 정규식으로 지정할 수 있음)
  • 메소드 응답 상태: 400(메소드 응답으로 추가한 상태)

  • 400 상태의 매핑 템플릿에 반환하려는 값 설정

  • 테스트 및 배포



    설정이 끝나면 메소드 실행 화면의 테스트에서 메소드를 테스트해 봅시다.
    테스트 화면에서 URL 쿼리 파라미터와 POST 요청 본문 설정도 가능합니다.
    테스트에 문제가 없으면 アクション 버튼 > APIのデプロイ에서 배포합니다.
    배포하면 스테이지 편집기 화면으로 전환되고 호출 URL이 표시됩니다.呼び出しのURL + 設定したリソース에서 API에 액세스할 수 있습니다.
    API 설정을 변경했을 때도 API 배포를 잊지 마세요!
    (몇 번이나 배포를 잊어 버렸습니다. 이상하지 않습니다 ... 움직이지 않습니다 ... )

    쿼리 매개변수 얻기


    $input.params("パラメータ名")에서 쿼리 매개 변수를 검색할 수 있습니다.
    통합 요청 매핑 템플릿에서 다음과 같이 설정하면 쿼리 매개 변수로 상태 코드를 분기할 수 있습니다.
    #if($input.params("debug") == "200")
      {"statusCode": 200}
    #elseif($input.params("debug") == "400")
      {"statusCode": 400}
    #else
      {"statusCode": 500}
    #end
    
    ##コメントを書く場合は先頭に「#」を2個
    

    요약



    이것으로 모의는 확실!

    라고 생각하면, 어라. POST의 리퀘스트 데이터를 취할 수 없다! ?
    여러가지 조사해 보면, 統合タイプ:Mock 에서는 데이터 취득을 할 수 없는 것 같다...
    (참고: teratail AWS API Gateway에서 HTTP 요청 json을 얻고 싶습니다. )
    · · · 어쩔 수 없기 때문에 Mock은 그만두고, Lambda 함수로 만드는 것으로 합니다.
    그러나, 길어지기 때문에Lambda의 이야기는 다음 번에.

    쁘띠 연재



    1회째 AWS API Gateway에서 모의를 만들어 보자(본 기사)
    두 번째 AWS API Gateway + Lambda (Python)에서 모의를 만들어 보자.
    세 번째 Slack + Lambda (Python)에서 AWS API Gateway 모의 만들기

    We're hiring!



    AI 채팅봇을 개발하고 있습니다.
    흥미있는 분은 Wantedly 페이지에서 부담없이 연락주십시오!

    참고 기사



    teratail AWS API Gateway에서 HTTP 요청 json을 얻고 싶습니다.

    좋은 웹페이지 즐겨찾기