API Gateway의 API에 모델을 연결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2018년 11 8일

Amazon API Gateway의 API와 모델을 통합하려고 합니다. 어떻게 해야 합니까?

간략한 설명

API Gateway의 API에 대한 모델을 생성하여 페이로드의 데이터 형식을 정의할 수 있습니다. API Gateway 모델은 JSON 스키마 draft 4를 사용해야 합니다.

다음 단계에 따라 모델을 API에 연결합니다.

1.    모델 스키마를 작성하고 API에 대한 모델을 생성합니다.

2.    모델을 API 메서드에 연결합니다.

3.    모델을 테스트합니다.

4.    (선택 사항) 모델에 대한 매핑 템플릿을 생성합니다.

5.    API를 배포하고 테스트합니다.

해결 방법

모델 스키마 작성 및 API에 대한 모델 생성

API에 연결할 모델 스키마를 작성합니다. 다음 예제 모델에서는 API 사용자가 요청 본문에서 UserIDName을 전달해야 합니다. 또한 모델의 UserIDName은 문자열 값이어야 하고 제공된 모든 Age는 18 이상의 정수 값이어야 합니다.

참고: 이 예제에서는 application/json을 사용합니다.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "User",
    "type": "object",
    "properties": {
        "UserID": {
            "type": "string"
        },
        "Name": {
            "type": "string"
        },
        "Age": {
            "description": "Age in years",
            "type": "integer",
            "minimum": 18
        }
    },
    "required": ["UserID", "Name"]
}

모델 스키마를 작성한 후 API Gateway 콘솔을 사용하여 모델을 생성합니다.

API 메서드에 모델 연결

1.    API Gateway 콘솔에서 API를 엽니다.

2.    탐색 창에서 [리소스]를 선택합니다.

3.    모델을 연결할 API 메서드를 선택합니다.

4.    [메서드 실행] 보기에서 [메서드 요청]을 선택합니다.

5.    [요청 검사기]에서 [본문 검증]을 선택합니다. 그런 다음 확인 아이콘을 선택하여 선택 사항을 저장합니다.

6.    [요청 본문]을 확장합니다. 그런 다음 [모델 추가]를 선택합니다.

7.    [콘텐츠 유형]에 모델의 콘텐츠 유형을 입력합니다(예: "application/json").

8.    [모델 이름]에서 생성한 모델을 선택합니다.

9.    확인 아이콘을 선택하여 선택 사항을 저장합니다.

모델 테스트

1.    API의 [리소스] 목록에서 모델을 연결한 API 메서드를 선택합니다.

2.    [메서드 실행] 보기에서 [테스트]를 선택합니다.

3.    [요청 본문]에 생성한 모델 스키마와 일치하는 요청 본문을 입력합니다.

참고: application/json 예제 모델을 테스트하려면 다음 샘플 요청 본문을 사용할 수 있습니다.

{ "UserID": "abc123", "Name":"Ana","Age":21}

4.    [테스트]를 선택합니다.

5.    샘플 요청 본문이 모델 스키마와 일치하면 성공적인 응답이 수신됩니다.

(선택 사항) 모델에 대한 매핑 템플릿 생성

매핑 템플릿을 생성하여 API의 통합 백엔드로 전송되는 요청을 수정하려면 다음 단계를 따르십시오.

1.    API의 [리소스] 목록에서 모델을 연결한 API 메서드를 선택합니다.

2.    [메서드 실행] 보기에서 [통합 요청]을 선택합니다.

3.    [매핑 템플릿]을 확장합니다.

4.    [요청 본문 패스스루]에서 [정의된 템플릿이 없는 경우(권장)]를 선택합니다.

5.    [매핑 템플릿 추가]를 선택합니다.

6.    [콘텐츠 유형]에 모델의 콘텐츠 유형을 입력합니다(예: "application/json"). 그런 다음 확인 아이콘을 선택하여 선택 사항을 저장합니다.

7.    [템플릿 생성]에서 생성한 모델을 선택합니다.

참고: application/json 예제 모델은 다음과 같이 나타납니다.

#set($inputRoot = $input.path('$')) { "UserID" : "$inputRoot.UserID", "Name" : "$inputRoot.Name", "Age" : $inputRoot.Age }

8.    API의 통합 백엔드에 전달하려는 값에 따라 템플릿을 수정합니다.

9.    [저장]을 선택합니다.

API 배포 및 테스트

1.    탐색 창에서 [리소스]를 선택합니다.

2.    [작업]을 선택합니다. 그런 다음 [API 배포]를 선택합니다.

3.    [배포 단계]에서 기존 단계를 선택하거나 [새 단계]를 선택하여 단계를 생성합니다. 새 단계를 생성한 경우 [단계 이름]에 이름도 입력해야 합니다.

4.    [배포]를 선택합니다.

API를 테스트하려면 모델과 연결된 메서드와 콘텐츠 유형을 사용하는 테스트 요청을 API에 보냅니다. API 개발 도구 또는 curl 명령을 사용하여 테스트 요청을 보낼 수 있습니다. 다음 curl 명령은 예제 application/json 모델에 대한 테스트 요청을 전송합니다.

curl -X POST <YOUR-API-URL> -H 'Content-Type: application/json' -d '{ "UserID": "abc123", "Name":"Ana","Age":21}'

올바른 메서드 및 콘텐츠 유형을 사용하는 테스트 요청을 전송한 후 성공적인 "200 OK" 응답이 수신되는지 확인합니다.

또 다른 테스트로 잘못된 응답 본문이 있는 테스트 요청을 보낼 수 있습니다. 다음 요청 본문은 필수 속성인 UserID가 없기 때문에 예제 application/json 모델에서 유효하지 않습니다.

{ "Name":"Ana", "Age":21}

잘못된 응답 본문을 사용하는 테스트 요청을 전송한 후 "잘못된 요청 본문"과 유사한 메시지와 함께 400 오류가 수신되는지 확인합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?