5.7. 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.13 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 흐름 유형과 함께 apiKey
및 oauth2
입니다.
OpenAPI 사양은 다음 중 하나여야 합니다.
- 사용 가능한 경로의 파일 이름입니다.
-
toolbox가 콘텐츠를 다운로드할 수 있는 URL입니다. 지원되는 스키마는
http
및https
입니다. -
stdin
표준 입력 스트림에서 읽습니다. 이 값은-
값을 설정하여 제어됩니다.
OpenAPI 정의를 가져올 때 다음과 같은 추가 규칙이 적용됩니다.
- 정의는 OpenAPI 2.0 또는 OpenAPI 3.0으로 검증됩니다.
- OpenAPI 정의의 모든 매핑 규칙을 가져옵니다. 이러한 기능은 API > 통합 에서 확인할 수 있습니다.
- 3scale 제품의 모든 매핑 규칙이 교체됩니다.
- OpenAPI 정의에 포함된 메서드만 수정됩니다.
-
OpenAPI 정의에만 존재하는 모든 방법은
Hits
메트릭에 연결됩니다. -
메서드를 교체하려면 정확한 패턴 일치를 사용하여 메서드 이름은 OpenAPI 정의
operation.operationId
에 정의된 메서드와 동일해야 합니다.
toolbox는 정책 체인에 없는 경우 anonymous_policy
라고도 하는 default_credentials
정책을 추가합니다. default_credentials
정책은 선택적 매개 변수 --default-credentials- userkey
에 제공된 userkey를 사용하여 구성됩니다.
OpenAPI 3.0은 보안 체계 및 보안 요구 사항 기능을 사용하여 API에 대한 보안을 지정하는 방법을 제공합니다. 자세한 내용은 공식 Swagger 인증 및 권한 부여 설명서를 참조하십시오.
OpenAPI 3.0 제한 사항
OpenAPI 3.0 정의를 가져올 때 다음과 같은 제한 사항이 적용됩니다.
-
servers
목록의 첫 번째server.url
요소만 개인 URL로 구문 분석됩니다.server.url
요소의경로
구성 요소는 OpenAPI의basePath
속성으로 사용됩니다. - toolbox는 작업 오브젝트의 경로 항목 및 서버의 서버를 구문 분석하지 않습니다.
- 보안 스키마 개체의 여러 흐름은 지원되지 않습니다.