5.6. OpenAPI 정의 가져오기

새 서비스를 생성하거나 기존 서비스를 업데이트하려면 로컬 파일 또는 URL에서 OpenAPI 정의를 가져올 수 있습니다. 가져오기의 기본 서비스 이름은 OpenAPI 정의의 info.title 에 의해 지정됩니다. 그러나 --target_system_name=<NEW NAME> 을 사용하여 이 서비스 이름을 재정의할 수 있습니다. 서비스 이름이 이미 있으면 업데이트되거나 없는 경우 새 서비스 이름이 생성됩니다.

가져오기 openapi 명령에는 다음과 같은 형식이 있습니다.

3scale import openapi [opts] -d=<destination> <specification>

OpenAPI <specification> 은 다음 중 하나일 수 있습니다.

  • /path/to/your/definition/file.[json|yaml|yml]
  • http[s]://domain/resource/path.[json|yaml|yml]

예제

$ podman run registry.redhat.io/3scale-amp2/toolbox-rhel8:3scale2.11 3scale import openapi [opts] -d=https://{DEST_KEY}@{3SCALE_ADMIN}-admin.{DOMAIN_NAME}  my-test-api.json

명령 옵션

가져오기 openapi 명령 옵션은 다음과 같습니다.

-d --destination=<value>
3scale 대상 인스턴스(http [s]://<authentication>@3scale_domain ).
-t --target_system_name=<value>
3scale 대상 시스템 이름.
--backend-api-secret-token=<value>
API 게이트웨이에서 백엔드 API로 전송하는 사용자 지정 시크릿 토큰입니다.
--backend-api-host-header=<value>
API 게이트웨이에서 백엔드 API로 전송하는 사용자 지정 호스트 헤더입니다.

자세한 옵션은 3scale import openapi --help 명령을 참조하십시오.

OpenAPI 가져오기 규칙

지원되는 보안 스키마는 OAuth 흐름 유형이 있는 apiKeyoauth2 입니다.

OpenAPI 사양은 다음 중 하나여야 합니다. 사용 가능한 경로의 파일 이름. toolbox에서 콘텐츠를 다운로드할 수 있는 URL입니다. 지원되는 스키마는 httphttps 입니다. ** stdin 표준 입력 스트림에서 읽습니다. 이 설정은 - 값을 설정하여 제어합니다.

다음 추가 규칙은 OpenAPI 정의를 가져올 때 적용됩니다.

  • 정의는 OpenAPI 2.0 또는 OpenAPI 3.0으로 검증됩니다.
  • OpenAPI 정의에서 모든 매핑 규칙을 가져옵니다. API > 통합 에서 볼 수 있습니다.
  • 3scale 제품의 모든 매핑 규칙이 교체됩니다.
  • OpenAPI 정의에 포함된 방법만 수정됩니다.
  • OpenAPI 정의에만 있는 모든 메서드는 Hits 지표에 연결됩니다.
  • 메서드를 교체하려면 정확한 패턴 일치를 사용하여 메서드 이름을 OpenAPI 정의 operation.operationId 에 정의된 방법과 동일해야 합니다.
참고

사양에 보안 요구 사항이 없지만 서비스는 OpenAPI 로 간주됩니다. toolbox는 정책 체인에 없는 경우 anonymous_policy 라고도 하는 default_credentials 정책을 추가합니다. default_credentials 정책은 선택적 매개변수 --default-credentials-user key에 제공된 user key 로 구성됩니다.

OpenAPI 3.0 제한 사항

다음 제한 사항은 OpenAPI 3.0 정의를 가져올 때 적용됩니다.

  • servers 목록의 첫 번째 server.url 요소만 프라이빗 URL로 구문 분석됩니다. server.url 요소의 경로 구성 요소는 OpenAPI의 basePath 속성으로 사용됩니다.
  • toolbox는 작업 오브젝트의 경로 항목과 서버에서 서버를 구문 분석하지 않습니다.
  • 보안 체계 오브젝트의 여러 흐름이 지원되지 않습니다.