4.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-rhel7:3scale2.10 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 가져오기 규칙
다음 규칙은 OpenAPI 정의를 가져올 때 적용됩니다.
- 정의는 OpenAPI 2.0 또는 OpenAPI 3.0으로 검증됩니다.
- 3scale 제품의 모든 매핑 규칙이 삭제됩니다.
-
교체하려면 정확한 패턴 일치를 사용하여 모든 메서드 이름은 OpenAPI 정의
operation.operationId
에 정의된 방법과 동일해야 합니다. - OpenAPI 정의에 포함된 방법만 수정됩니다.
-
OpenAPI 정의에만 있는 모든 메서드는
Hits
지표에 연결됩니다. - OpenAPI 정의에서 모든 매핑 규칙을 가져옵니다. API > 통합 에서 볼 수 있습니다.
-
지원되는 보안 스키마는 OAuth 흐름 유형이 있는
apiKey
및oauth2
입니다. OpenAPI 사양은 다음 중 하나여야 합니다.
- 사용 가능한 경로의 파일 이름.
-
toolbox에서 콘텐츠를 다운로드할 수 있는 URL입니다. 지원되는 스키마는
http
및https
입니다. -
stdin
표준 입력 스트림에서 읽습니다. 이 설정은-
값을 설정하여 제어합니다.
사양에 보안 요구 사항이 없지만 서비스는 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는 작업 오브젝트의 경로 항목과 서버에서 서버를 구문 분석하지 않습니다.
- 보안 체계 오브젝트의 여러 흐름이 지원되지 않습니다.