래퍼 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 스크립트가 포함되어 있습니다. 각 API에 대해 추가 Terraform 지원 파일과 Oracle Functions 폴더가 있습니다. 래퍼 API 패키지는 다음과 같은 OCI 리소스를 생성합니다.
- VCN(가상 클라우드 네트워크): 통신을 위한 네트워크 기반구조를 설정합니다.
- Applications(Oracle Functions): API 논리를 처리하기 위해 서버리스 함수를 배포합니다.
- API 게이트웨이: API 요청을 관리하고 경로 지정할 게이트웨이를 생성합니다.
- API 배치: API 게이트웨이를 구성하고 배치합니다.
- API 배치 정책: 보안 액세스를 사용으로 설정하는 데 필요한 IAM 정책을 설정합니다.
- OCI 레지스트리: Docker 이미지 관리를 위한 컨테이너 레지스트리를 제공합니다.
래퍼 API를 생성한 후 구성 변수를 변경하려면 Visual Studio Code에서 해당 변수를 업데이트하거나 래퍼 API 패키지를 추출하고 업데이트된 끝점 및 리소스 이름으로
terraform.tfvars
파일을 업데이트할 수 있습니다. function_paths
변수를 terraform.tfvars
파일로 편집하여 끝점을 업데이트합니다. function_paths
변수는 키가 API 이름이고 값이 다음 두 개의 키가 있는 또 다른 JSON 객체인 JSON 객체입니다.
path
: API에 대한 끝점을 정의합니다.type
: 요청 유형(POST 또는 GET)을 지정합니다.
function_paths
변수의 예를 보여줍니다.function_paths="{\"activateAccount\":{\"path\":\"/activateAccount\",\"type\":[\"POST\"]}}"
Postman 모음
Postman 컬렉션에는 모든 API에 대한 업데이트된 엔드포인트 및 페이로드가 포함되어 있습니다. 다음 코드는 페이로드 예를 보여줍니다.
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"applicationGroups": "[\"application_groups value\"]",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
"endorsers": {{endorsers}}
}
다음 표에서는 Postman 컬렉션 변수를 보여 줍니다.
변수 | 설명 | 기본값 |
---|---|---|
bc-admin-user |
모든 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 수에 따라 끝점이 동적으로 api-gateway-endpoint1, api-gateway-endpoint2 등으로 생성됩니다. |
https://xyz.apigateway.region.oci.customer-oci.com/CBDC |
peer |
이 변수는 모든 setter API에 대한 피어 헤더가 필요한 기밀 체인코드 래퍼 API Postman 모음에만 존재합니다. | org-xyz-abc.blockchain.ocp.oraclecloud.com: 20009년 |
래퍼 API 패키지를 배치한 후 스택 리소스 배치의 출력은 게이트웨이 끝점 값을 포함하는 JSON 객체입니다. API를 50개 이상 생성하는 경우 API 50개당 하나씩 게이트웨이 끝점이 여러 개 생성됩니다. 해당 끝점과 관련된 Postman 모음 변수를 업데이트해야 합니다. Postman 컬렉션의 끝점 관련 변수는 Stack Resource Manager의 래퍼 API 패키지 배치 출력에서 적절한 값으로 업데이트해야 합니다.
래퍼 API Postman 모음의 모든 setter 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
로 포함합니다.
Postman 컬렉션 사용에 대한 자세한 내용은 다음 내용을 참조하십시오.