API Gateway의 간편 계산기 API - Amazon API Gateway

API Gateway의 간편 계산기 API

간편 계산기 API는 간편 계산기 Lambda 함수을 호출하는 세 가지 메서드(GET, POST, GET)를 제공합니다. 이 API를 그래픽으로 나타내면 다음과 같습니다.

생성된 SDK를 위한 간편 계산기 API

다음 세 가지 메서드는 다양한 방식으로 백엔드 Lambda 함수에 대한 입력을 제공하여 동일한 작업을 수행할 수 있음을 보여 줍니다.

  • GET /?a=...&b=...&op=... 메서드는 쿼리 파라미터를 사용하여 입력값을 지정합니다.

  • POST / 메서드는 {"a":"Number", "b":"Number", "op":"string"}의 JSON 페이로드를 사용하여 입력값을 지정합니다.

  • GET /{a}/{b}/{op} 메서드는 경로 파라미터를 사용하여 입력값을 지정합니다.

정의되지 않은 경우, API Gateway는 HTTP 메서드 부분과 경로 부분을 조합하여 해당 SDK 메서드 이름을 생성합니다. 루트 경로 부분(/)은 Api Root라고 합니다. 예를 들어 GET /?a=...&b=...&op=... API 메서드의 기본 Java SDK 메서드 이름은 getABOp이고, POST /의 기본 SDK 메서드 이름은 postApiRoot이며, GET /{a}/{b}/{op}의 기본 SDK 메서드 이름은 getABOp입니다. 개별 SDK는 명명 규칙을 사용자 지정할 수 있습니다. SDK별 메서드 이름에 대해서는 생성된 SDK 소스의 설명서를 참고하십시오.

각 API 메서드에서 operationName 속성을 지정하여 기본 SDK 메서드 이름을 재정의할 수 있으며, 이렇게 재정의해야 합니다. API Gateway REST API를 사용하여 API 메서드를 생성하거나 API 메서드를 업데이트할 때 이렇게 재정의할 수 있습니다. API Swagger 정의에서 operationId를 설정하여 같은 결과를 달성할 수 있습니다.

이 API에 대해 API Gateway에서 생성된 SDK를 사용하여 이러한 메서드를 호출하는 방법을 보여드리기 전에, 먼저 메서드를 설정하는 방법을 간략하게 복습해 보겠습니다. 자세한 지침은 단원을 참조하십시오API Gateway에서 REST API 개발 API Gateway를 처음 사용하는 경우 먼저 AWS Lambda 통합 튜토리얼 선택 단원을 참조하십시오.

입력 및 출력 모델 생성

강력한 입력 형식을 SDK에 지정하기 위해, 먼저 API의 Input 모델을 생성합니다. 응답 본문 데이터 유형을 설명하기 위해 Output 모델과 Result 모델을 생성합니다.

입력, 출력 및 결과에 대한 모델을 생성하려면
  1. 기본 탐색 창에서 모델을 선택합니다.

  2. Create model(모델 생성)을 선택합니다.

  3. 이름input를 입력합니다.

  4. 콘텐츠 유형에 application/json을 입력합니다.

    일치하는 콘텐츠 유형이 없는 경우 요청 확인이 수행되지 않습니다. 콘텐츠 유형에 관계없이 동일한 모델을 사용하려면 $default를 입력합니다.

  5. 모델 스키마에서 다음 모델을 입력합니다.

    { "$schema" : "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "a":{"type":"number"}, "b":{"type":"number"}, "op":{"type":"string"} }, "title":"Input" }
  6. Create model(모델 생성)을 선택합니다.

  7. 다음 단계를 반복하여 Output 모델과 Result 모델을 생성합니다.

    Output 모델의 경우 모델 스키마에 다음을 입력합니다.

    { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "c": {"type":"number"} }, "title": "Output" }

    Result 모델의 경우 모델 스키마에 다음을 입력합니다. API ID abc123을 해당 API ID로 바꿉니다.

    { "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "input":{ "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Input" }, "output":{ "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Output" } }, "title":"Result" }

GET/메서드 쿼리 파라미터 설정

GET /?a=..&b=..&op=.. 메서드의 경우, Method Request(메서드 요청)에서 쿼리 파라미터를 선언합니다.

GEL/URL 쿼리 문자열 파라미터를 설정하려면
  1. 루트(/) 리소스의 GET 메서드에 대한 메서드 요청 섹션에서 편집을 선택합니다.

  2. URL 쿼리 문자열 파라미터를 선택하고 다음을 수행합니다.

    1. 쿼리 문자열 추가(Add query string)를 선택합니다.

    2. 이름a를 입력합니다.

    3. 필수 상태로 유지하고 캐싱을 해제합니다.

    4. 캐싱을 꺼진 상태로 둡니다.

    같은 단계를 반복하여 b라는 쿼리 문자열과 op라는 쿼리 문자열을 생성합니다.

  3. Save(저장)를 선택합니다.

페이로드의 데이터 모델을 백엔드 입력값으로 설정

POST / 메서드의 경우, Input 모델을 생성하고 이를 메서드 요청에 추가하여 입력 데이터의 형태를 정의합니다.

페이로드의 데이터 모델을 백엔드 입력으로 설정하려면
  1. 루트(/) 리소스의 POST 메서드에 대한 메서드 요청 섹션에서 편집을 선택합니다.

  2. 요청 본문을 선택합니다.

  3. 모델 추가를 선택합니다.

  4. 콘텐츠 유형에 application/json을 입력합니다.

  5. 모델에서 입력을 선택합니다.

  6. Save(저장)를 선택합니다.

이 모델을 사용하는 API 고객은 SDK를 호출하여 Input 객체를 인스턴스화하고 입력값을 지정할 수 있습니다. 이 모델을 사용하지 않는 고객은 딕셔너리 객체를 생성하여 Lambda 함수에 대한 JSON 입력을 표시해야 합니다.

백엔드 결과 출력용 데이터 모델 설정

세 가지 메서드 모두에 대해 Result 모델을 생성하고 메서드의 Method Response에 추가하여 Lambda 함수에서 반환되는 출력 형태를 정의합니다.

백엔드 결과 출력용 데이터 모델을 설정하려면
  1. /{a}/{b}/{op} 리소스를 선택한 다음 GET 메서드를 선택합니다.

  2. 메서드 응답 탭의 응답 200에서 편집을 선택합니다.

  3. 요청 본문에서 모델 추가를 선택합니다.

  4. 콘텐츠 유형에 application/json을 입력합니다.

  5. 모델에서 결과를 선택합니다.

  6. Save(저장)를 선택합니다.

API 고객은 Result 객체의 속성을 읽고 이 모델로 출력값을 분석할 수 있습니다. 이 모델을 사용하지 않는 경우, 고객이 딕셔너리 객체를 생성해서 JSON 출력을 표시해야 합니다.