API Gateway에서 모델과 API를 통합하려고 합니다. 어떻게 해야 합니까?

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

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

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

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

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

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

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

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

API와 연결할 모델 스키마를 작성합니다. 다음 예제 모델에서는 API 사용자가 요청 본문에 사용자 ID이름을 전달해야 합니다. 또한 모델에서는 사용자 ID이름이 문자열 값이어야 하며, 제공된 모든 수명은 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.    Method Execution(메서드 실행) 보기에서 Method Request(메서드 요청)를 선택합니다.

5.    Request Validator(요청 검사기)에서 Validate body(본문 검사)를 선택합니다. 그런 다음 확인 아이콘을 선택하여 선택 사항을 저장합니다.

6.    Request Body(요청 본문)를 확장합니다. 그런 다음 모델 추가를 선택합니다.

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

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

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

모델 테스트

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

2.    Method Execution(메서드 실행) 보기에서 테스트를 선택합니다.

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

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

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

4.    [Test]를 선택합니다.

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

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

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

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

2.    Method Execution(메서드 실행) 보기에서 Integration Request(통합 요청)를 선택합니다.

3.    매핑 템플릿(Mapping Templates)을 확장합니다.

4.    Request body passthrough(요청 본문 패스스루)에서 When there are no templates defined (recommended)(정의된 템플릿이 없는 경우(권장))를 선택합니다.

5.    매핑 템플릿 추가(Add mapping template)를 선택합니다.

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

7.    Generate template(템플릿 생성)에서 생성한 모델을 선택합니다.

참고: applicaton/json 예제 모델은 다음과 같이 표시됩니다.  

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

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

9.     Save를 선택합니다.

API 배포 및 테스트

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

2.     [Actions]를 선택합니다. 그런 다음 Deploy API(API 배포)를 선택합니다.

3.     Deployment stage(배포 단계)에서 기존 단계를 선택하거나 New Stage(새 단계)를 선택하여 단계를 생성합니다. 새 단계를 생성한 경우에는 Stage name(단계 이름)에 이름도 입력해야 합니다.

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" 응답이 수신되는지 확인합니다.

또 다른 테스트로 잘못된 응답 본문이 있는 테스트 요청을 전송할 수 있습니다. 다음 요청 본문에는 필수 속성 사용자 ID가 포함되어 있지 않으므로 예제 application/json 모델에 따라 잘못되었습니다.

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

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


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2018-11-08