CLI를 사용하여 래퍼 API 생성
향상된 버전의 Blockchain App Builder에는 체인코드 프로젝트의 모든 컨트롤러 API에 대한 래퍼 API를 생성하는 generateFnAPI
명령이 포함되어 있습니다.
Usage: ochain generateFnAPI [options]
Generation of WrapperAPI package for controller functions
Options:
-h, --help Output command usage information
-D, --debug Enable debug logging
-m, --mapping <mapping> Info about functions endpoints mapping is mandatory.
-c, --config <config> Info about configuration variables is mandatory.
-a, --all <all> Generate the wrapperAPI package for entire controller functions
-p, --project <path> Path to the Ochain chaincode project to generate the WrapperAPI package. If not specified, it defaults to current directory.
다음 예에서는 로컬 체인코드 프로젝트에 대한 래퍼 API를 생성하는 방법을 보여 줍니다.
ochain generateFnAPI --mapping <info object about function mapping> --config <info about the config variables> --project <Path to the Ochain chaincode project> --out <Path to the generated postman collection>
generateFnAPI
명령을 실행하면 선택 위치에 있는 이전 래퍼 API 패키지를 겹쳐쓸지 여부를 묻는 메시지가 표시됩니다.
API 게이트웨이는 단일 배포에서 생성할 수 있는 경로 수를 50개로 제한합니다. generateFnAPI
명령을 사용하여 래퍼 API를 50개 이상 생성하려고 하면 여러 게이트웨이를 생성할지 묻는 메시지가 표시됩니다. 동일한 배치 경로 접두어를 사용하여 여러 게이트웨이를 생성하면 모든 래퍼 API 끝점에서 일관된 기본 경로가 유지됩니다. 다중 게이트웨이를 생성하지 않도록 선택하면 래퍼 API 생성이 취소됩니다.
명령 옵션
- -m, --mapping <mapping>
- 매핑 옵션은 끝점 이름과 래퍼 API 생성이 필요한 컨트롤러 API를 지정하여 컨트롤러 API의 구성을 정의합니다. 맵은 키/값 쌍의 JSON 객체로, 키는 컨트롤러 API의 이름이고 값은 해당 컨트롤러 API와 연관시킬 사용자정의 끝점입니다.
다음 예에서는 확장된 토큰 분류법 프레임워크 표준을 사용하는 체인 코드에 대한 매핑을 보여줍니다.
ochain generateFnAPI --mapping '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest", "approveBurn": "/approveBurnTest", "createAccount": "/createAccount", "associateTokenToAccount": "/associateTokenToAccountTest", "getAllOrgAccounts": "/getAllOrgAccounts"}' --config <info about the config variables> --project <Path to the Ochain chaincode project> --out <Path to the generated postman collection>
- -c, --config <config>
- 구성 옵션은 래퍼 API 패키지에 필요한 구성 변수를 전달하는 데 사용됩니다. 키/값 쌍의 JSON 객체로, 키는 구성 변수 이름이고 값은 구성 변수 값입니다. 래퍼 API 패키지를 생성하려면 모든 구성 변수가 필수입니다. 다음 변수 중 하나라도 명령에 전달되지 않으면 래퍼 API 생성이 실패합니다. 래퍼 API
.zip
파일을 추출하여 래퍼 API를 생성한 후 해당 값을 편집할 수 있습니다.변수 이름 설명 compartment_ocid
OCI(Oracle Cloud Infrastructure)에 있는 구획의 OCID입니다. compartment_name
OCI 구획의 이름입니다. identity_domain
사용할 ID 도메인입니다. blockchain_channel
체인 코드가 배포되는 Oracle Blockchain Platform 채널의 이름입니다. blockchain_url
체인코드 배치와 연관된 Oracle Blockchain Platform URL입니다. blockchain_chaincode
래퍼 API를 생성할 체인 코드의 이름입니다. blockchain_sync
API 호출에 대한 페이로드에 포함할 동기화 값입니다. blockchain_timeout
API 호출에 대한 페이로드에 포함할 시간 초과 값입니다. vcn_display_name
OCI 가상 클라우드 네트워크의 표시 이름입니다. application_display_name
OCI 애플리케이션의 표시 이름입니다. gateway_display_name
API 게이트웨이의 표시 이름입니다. deployment_display_name
API 게이트웨이에 있는 배포의 표시 이름입니다. deployment_path_prefix
경로가 배치되는 경로를 지정하는 API 게이트웨이의 배치 경로 접두어입니다. deployment_path_prefix
변수는 슬래시(/)로 시작해야 합니다.ocir_repo_name
OCI 레지스트리 저장소 이름입니다. ocir_repo_name
변수는 모두 소문자여야 합니다.policy_name
조직 내 그룹 및 구획에 대해 정의된 권한을 통해 API에 대한 제어 관리 및 액세스를 사용으로 설정하는 정책의 이름입니다. 다음 예에서는 확장된 토큰 분류법 프레임워크 표준을 사용하는 체인 코드에 대한 매핑을 보여줍니다.
ochain generateFnAPI -m '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest", "approveBurn": "/approveBurnTest", "createAccount": "/createAccount", "associateTokenToAccount": "/associateTokenToAccountTest", "getAllOrgAccounts": "/getAllOrgAccounts"}' -c '{"compartment_ocid": "compartment_ocid value", "compartment_name": "compartment_name value", "identity_domain" : "OracleIdentityCloudService", "blockchain_channel": "default", "blockchain_url": "blockchain_url value", "blockchain_chaincode": "blockchain_chaincode value", "blockchain_sync": true, "blockchain_timeout": 6000, "vcn_display_name": "vcn_display_name value", "application_display_name": "application_display_name value", "gateway_display_name": "gateway_display_name value", "deployment_display_name": "deployment_display_name value", "deployment_path_prefix": "deployment_path_prefix value", "ocir_repo_name": "ocir_repo_name value", "policy_name": "policy_name value"}'
- -a, --all <all>
- 모든 옵션은 체인 코드에 정의된 모든 컨트롤러 API에 대한 래퍼 API를 생성합니다.
true
인 경우 이 옵션은 매핑 옵션을 대체합니다. 모든 래퍼 API에는 API 이름에 해당하는 기본 끝점이 지정됩니다. 모든 옵션을 지정하는 경우 매핑 옵션에 대해 빈 JSON 객체({})를 제공해야 합니다.다음 예에서는 확장된 토큰 분류법 프레임워크 표준을 사용하는 체인 코드에 대한 매핑을 보여줍니다.
ochain generateFnAPI -m '{}' -c '{"compartment_ocid": "compartment_ocid value", "compartment_name": "compartment_name value", "identity_domain" : "OracleIdentityCloudService", "blockchain_channel": "default", "blockchain_url": "blockchain_url value", "blockchain_chaincode": "blockchain_chaincode value", "blockchain_sync": true, "blockchain_timeout": 6000, "vcn_display_name": "vcn_display_name value", "application_display_name": "application_display_name value", "gateway_display_name": "gateway_display_name value", "deployment_display_name": "deployment_display_name value", "deployment_path_prefix": "deployment_path_prefix value", "ocir_repo_name": "ocir_repo_name value", "policy_name": "policy_name value"}' -a true