API Gateway에서 REST API 내보내기 - Amazon API Gateway

API Gateway에서 REST API 내보내기

API Gateway 콘솔을 사용하거나 달리 API Gateway에서 REST API를 생성 및 구성한 경우, Amazon API Gateway Control Service의 일부인 API Gateway API 내보내기를 사용하여 이를 OpenAPI 파일로 내보낼 수 있습니다. Postman 확장뿐만 아니라 API 게이트웨이 통합 확장도 내보낸 OpenAPI 정의 파일에 포함시킬 수 있습니다.

참고

AWS CLI를 사용하여 API를 내보낼 경우 다음 예와 같이 확장 파라미터를 포함시켜서 x-amazon-apigateway-request-validator 확장이 포함되도록 하세요.

aws apigateway get-export --parameters extensions='apigateway' --rest-api-id abcdefg123 --stage-name dev --export-type swagger latestswagger2.json

페이로드가 application/json 유형이 아닐 경우 API를 내보낼 수 없습니다. 내보내기를 시도하면 JSON 본문 모델이 없다는 오류 응답을 받게 됩니다.

REST API 내보내기 요청

내보내기 API를 사용하여 GET 요청을 제출하고 내보낼 API를 URL 경로의 일부로 지정하여 기존 REST API를 내보내십시오. 요청 URL의 형식은 다음과 같습니다.

OpenAPI 3.0
https://<host>/restapis/<restapi_id>/stages/<stage_name>/exports/oas30
OpenAPI 2.0
https://<host>/restapis/<restapi_id>/stages/<stage_name>/exports/swagger

API Gateway 확장(integration 값 사용) 또는 Postman 확장을 포함할지(postman 값 사용) 지정하는 extensions 쿼리 문자열을 추가할 수 있습니다.

그리고 Accept 헤더를 application/json 또는 application/yaml로 설정하여 API 정의 출력을 각각 JSON 또는 YAML 형식으로 받을 수 있습니다.

API Gateway 내보내기 API를 사용하여 GET 요청을 제출하는 자세한 내용은 HTTP 요청 작성 단원을 참조하세요.

참고

API에서 모델을 정의한 경우 API Gateway가 모델을 내보내려면 "application/json" 콘텐츠 유형이어야 합니다. 그렇지 않으면 API Gateway에서 "Only found non-JSON body models for ..." 오류 메시지와 함께 예외가 발생합니다.

모델은 속성을 포함하거나 특정 JSONSchema 형식으로 정의해야 합니다.

REST API OpenAPI 정의를 JSON으로 다운로드

OpenAPI 정의의 REST API를 JSON 형식으로 내보내고 다운로드하려면

OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30 Host: apigateway.<region>.amazonaws.com Accept: application/json
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger Host: apigateway.<region>.amazonaws.com Accept: application/json

예를 들어, 여기서 <region>us-east-1일 수 있습니다. API Gateway를 사용할 수 있는 전체 리전은 리전 및 엔드포인트를 참조하세요.

REST API OpenAPI 정의를 YAML로 다운로드

OpenAPI 정의의 REST API를 YAML 형식으로 내보내고 다운로드하려면

OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30 Host: apigateway.<region>.amazonaws.com Accept: application/yaml
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger Host: apigateway.<region>.amazonaws.com Accept: application/yaml

Postman 확장이 포함된 REST API OpenAPI 정의를 JSON으로 다운로드

OpenAPI 정의의 REST API를 Postman을 사용해 JSON 형식으로 내보내고 다운로드하려면

OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30?extensions=postman Host: apigateway.<region>.amazonaws.com Accept: application/json
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger?extensions=postman Host: apigateway.<region>.amazonaws.com Accept: application/json

API Gateway 통합이 포함된 REST API OpenAPI 정의를 YAML로 다운로드

OpenAPI 정의의 REST API를 API Gateway 통합을 사용해 YAML 형식으로 내보내고 다운로드하려면

OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30?extensions=integrations Host: apigateway.<region>.amazonaws.com Accept: application/yaml
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger?extensions=integrations Host: apigateway.<region>.amazonaws.com Accept: application/yaml

API Gateway 콘솔을 사용하여 REST API 내보내기

REST API를 단계로 배포한 후 API Gateway 콘솔을 사용하여 단계의 API를 OpenAPI 파일로 계속 내보낼 수 있습니다.

API Gateway 콘솔의 단계 구성(stage configuration) 페이지에서 내보내기 탭을 선택한 다음 사용 가능한 옵션 OpenAPI로 내보내기(Export as OpenAPI), OpenAPI로 내보내기 + API Gateway 통합(Export as OpenAPI + API Gateway Integrations)Postman으로 내보내기(Export as Postman)) 중 하나를 선택하여 API의 OpenAPI 정의를 다운로드합니다.


                        API Gateway 콘솔을 사용하여 REST API 내보내기