래퍼 API 패키지 구성 요소
래퍼 API 패키지에는 래퍼 API의 아카이브 파일, 배치용 Terraform 스크립트 및 해당하는 Postman 모음이 포함됩니다.
- 래퍼 API 아카이브 파일의 이름은
<ChaincodeName>WrapperAPI.zip
입니다. 또한 스택 리소스에 배치해야 하는 Terraform 스크립트가 포함되어 있습니다. - Postman 컬렉션 파일의 이름은
<ChaincodeName>_WrapperAPI.postman_collection.json
입니다. 이 모음을 사용하여 모든 래퍼 API를 호출할 수 있습니다.
래퍼 API 패키지
래퍼 API 패키지에는 래퍼 API 생성에 필요한 모든 OCI(Oracle Cloud Infrastructure) 리소스를 프로비저닝하는 Terraform 스크립트가 포함되어 있습니다. 추가 Terraform 지원 파일과 각 API에 대한 Oracle Functions 폴더가 있습니다. 래퍼 API 패키지는 다음과 같은 OCI 리소스를 생성합니다.
- VCN(가상 클라우드 네트워크): 통신용 네트워크 Infrastructure를 설정합니다.
- 애플리케이션(Oracle Functions): 서버리스 함수를 배포하여 API 논리를 처리합니다.
- API 게이트웨이: API 요청을 관리하고 라우팅할 게이트웨이를 생성합니다.
- API 배치: API 게이트웨이에서 API를 구성하고 배치합니다.
- API 배치 정책: 보안 액세스를 활성화하는 데 필요한 IAM 정책을 설정합니다.
- OCI 레지스트리: Docker 이미지 관리를 위한 컨테이너 레지스트리를 제공합니다.
routes.go
파일로 terraform.tfvars
파일을 업데이트할 수 있습니다. terraform.tfvars
파일에서 function_paths
변수를 편집하여 끝점을 업데이트합니다. function_paths 변수는 끝점을 {endpoint, methodType}
구문으로 정의합니다. 다음 텍스트는 function_paths
변수의 예를 보여줍니다.function_paths="[{\"endpoint\":\"/activateCBDCAccount\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/addCBAdmin\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/approveBurn\",\"methodType\":[\"POST\"]}]"
routes.go
파일은 <ChaincodeName>OCIFunction
폴더에 있습니다. routeData
변수는 경로 이름, 인수 및 선택적 인수가 있는지 여부를 포함하여 게이트웨이에서 생성된 모든 경로에 대한 메타데이터를 포함합니다. terraform.tfvars
파일에서 function_paths
변수의 끝점을 업데이트할 때 다음 예와 같이 routes.go
파일의 routeData
변수에 있는 해당 항목도 업데이트해야 합니다.var routeData = map[string]Route{
"/activateCBDCAccount": {
Args: []string{"activateAccount", "orgId", "userId", "tokenId"},
OptionalParams: true,
},
}
포스트맨 컬렉션
Postman 컬렉션은 이제 기밀 체인 코드 및 OAuth 2.0 인증을 지원합니다. 자세한 내용은 Postman Collections에 대한 향상을 참조하십시오.
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"applicationGroups": "[\"application_groups value\"]",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
"endorsers": {{endorsers}}
}
변수 | 설명 | 기본값 |
---|---|---|
bc-admin-user |
admin 역할이 있고 모든 POST 요청에 액세스할 수 있는 관리 사용자입니다. 기본적으로 이 사용자는 체인 코드에 있는 모든 POST 요청의 호출자입니다.
|
bc-admin-user 값 |
bc-admin-user-password |
관리 사용자 비밀번호입니다. | bc-admin-user-password 값 |
bc-org-id |
모든 POST 요청의 기본 조직 ID입니다. 여기서 orgId 는 매개변수 이름입니다.
|
bc-org-id 값 |
bc-user-id |
모든 POST 요청의 기본 사용자 ID입니다. 여기서 userId 는 매개변수 이름입니다.
|
bc-user-id 값 |
bc-token-id |
모든 POST 요청의 기본 토큰 ID입니다. 여기서 tokenId 는 매개변수 이름입니다.
|
bc-token-id 값 |
endorsers |
보증인 배열에는 이 트랜잭션을 보증할 특정 피어(예: peer1, peer2)가 나열됩니다. | ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"] |
api-gateway-endpoint |
래퍼 API 끝점에 대한 기본 경로로 사용되는 각 요청의 끝점입니다.
API가 50개 미만인 경우 단일 엔드포인트가 사용됩니다. API가 50개를 초과하는 경우 끝점은 API 수에 따라 동적으로 |
https://xyz.apigateway.region.oci.customer-oci.com/CBDC |
bc-url |
Oracle Blockchain Platform 인스턴스의 REST 프록시 URL입니다. | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
access-token-url |
IDCS(Oracle Identity Cloud Service) 액세스 토큰 URL입니다. 예: <idcs_endpoint>/oauth/v1/token |
access-token-url 값 |
client-id |
Oracle Blockchain Platform 인스턴스의 클라이언트 ID입니다. | 클라이언트 ID |
client-secret |
Oracle Blockchain Platform 인스턴스의 클라이언트 암호입니다. | 클라이언트-비밀 |
peer |
이 변수는 모든 setter 및 getter API에 대한 피어 헤더가 필요한 기밀 체인코드 래퍼 API Postman 모음에만 존재합니다. | org-xyz-abc.blockchain.ocp.oraclecloud.com:20009년 |
래퍼 API 패키지를 배치한 후 스택 리소스 배치의 출력은 게이트웨이 끝점 값을 포함하는 JSON 객체입니다. API를 50개 이상 생성하는 경우 API 50개당 하나씩 여러 게이트웨이 엔드포인트가 생성됩니다. 이러한 끝점과 관련된 Postman 컬렉션 변수를 업데이트해야 합니다. Postman 컬렉션의 끝점 관련 변수는 Stack Resource Manager의 래퍼 API 패키지 배포 출력에서 적절한 값으로 업데이트되어야 합니다.
endorsers
또는 sameOrgEndorser
매개변수가 포함됩니다. sameOrgEndorser
매개변수가 필요한 API를 지정하는 정보는 체인 코드의 .ochain.json
파일에 있는 sameOrgEndorserOptionInWrapperAPI
매개변수에 정의됩니다. 이 매개변수에 나열된 API의 페이로드에서 sameOrgEndorser
가 true로 설정됩니다. 다른 모든 setter API에는 대신 endorsers
매개변수가 포함됩니다. 다음 예에서는 도매 CBDC 체인코드에 대한 매개변수를 보여줍니다."sameOrgEndorserOptionInWrapperAPI": ["addConversionRate","addTokenAdmin","addTokenAuditor","approveBurn","approveMint","burnTokens","createExchangePoolAccounts","deleteHistoricalTransactions","initializeCBDCToken","initializeExchangePoolUser","mintWithFundingExchangePool","rejectBurn","rejectMint","removeTokenAdmin","removeTokenAuditor","requestBurn","requestMint","updateCBDCToken","updateConversionRate"]
필요에 따라 .ochain.json
파일에서 sameOrgEndorserOptionInWrapperAPI
매개변수를 사용자정의할 수 있습니다. 래퍼 API를 생성할 때 지정된 API는 페이로드에 sameOrgEndorser
매개변수를 true
로 포함합니다.