OpenAPI basePath 속성 설정 - Amazon API Gateway

OpenAPI basePath 속성 설정

OpenAPI 2.0에서 basePath 속성을 사용하여 paths 속성에 정의된 각 경로 앞에 하나 이상의 경로 파트를 제공할 수 있습니다. API Gateway에 리소스 경로를 표시할 여러 방법이 있기 때문에 Import API 기능은 가져오기 과정에서 basePath 속성을 해석하기 위한 옵션(무시, 앞에 추가, 분할)을 제공합니다.

OpenAPI 3.0에서, basePath는 더 이상 상위 수준 속성이 아닙니다. 대신 API Gateway는 서버 변수를 규칙으로 사용합니다. Import API 기능은 가져오기 중에 기본 경로를 해석하기 위한 동일한 옵션을 제공합니다. 기본 경로는 다음과 같이 식별됩니다.

  • API에 basePath 변수가 없을 경우 Import API 기능은 server.url 문자열을 확인하여 "/" 위의 경로를 포함하는지 확인합니다. 포함할 경우 이 경로가 기본 경로로 사용됩니다.

  • API에 basePath 변수가 한 개만 있을 경우 Import API 기능은 server.url에 참조되지 않았더라도 이 변수를 기본 경로로 사용합니다.

  • API에 basePath 변수가 여러 개 있을 경우 Import API 기능은 첫 번째 변수만 기본 경로로 사용합니다.

Ignore

OpenAPI 파일에서 basePath 값이 /a/b/c이고, paths 속성에 /e/f가 포함된 경우 다음 POST 또는 PUT 요청은

POST /restapis?mode=import&basepath=ignore

PUT /restapis/api_id?basepath=ignore

API에 다음 리소스를 생성합니다.

  • /

  • /e

  • /f

그 결과 basePath는 존재하지 않는 것처럼 처리되고, 선언된 모든 API 리소스가 호스트를 기준으로 제공됩니다. 예를 들어, 프로덕션 단계를 참조하는 Base PathStage 값을 포함하지 않는 API 매핑이 포함된 사용자 지정 도메인 이름이 있는 경우 이 옵션을 사용할 수 있습니다.

참고

API Gateway는 정의 파일에 명시적으로 선언되지 않은 경우에도 자동으로 루트 리소스를 생성합니다.

지정하지 않을 경우 basePath는 기본적으로 ignore를 사용합니다.

Prepend

OpenAPI 파일에서 basePath 값이 /a/b/c이고, paths 속성에 /e/f가 포함된 경우 다음 POST 또는 PUT 요청은

POST /restapis?mode=import&basepath=prepend

PUT /restapis/api_id?basepath=prepend

API에 다음 리소스를 생성합니다.

  • /

  • /a

  • /a/b

  • /a/b/c

  • /a/b/c/e

  • /a/b/c/f

그 결과 basePath는 (메서드 없는) 추가 리소스 지정으로 처리되고 이 리소스를 선언된 리소스 세트에 추가합니다. 예를 들어, 다른 팀이 API의 다른 파트를 담당하고 있고 basePath가 각 팀의 API 파트에 대한 경로 위치를 참조할 수 있는 경우 이 옵션을 사용할 수 있습니다.

참고

API Gateway는 정의에 명시적으로 선언되지 않은 경우에도 자동으로 중간 리소스를 생성합니다.

분할

OpenAPI 파일에서 basePath 값이 /a/b/c이고, paths 속성에 /e/f가 포함된 경우 다음 POST 또는 PUT 요청은

POST /restapis?mode=import&basepath=split

PUT /restapis/api_id?basepath=split

API에 다음 리소스를 생성합니다.

  • /

  • /b

  • /b/c

  • /b/c/e

  • /b/c/f

그 결과 가장 위의 경로 파트 /a를 리소스 경로의 시작으로 처리하고 API내에 추가 리소스(메서드 없음)를 생성합니다. 예를 들어, a가 API 일부로 공개할 단계 이름인 경우 이 옵션을 사용할 수 있습니다.