215 lines
5.1 KiB
Markdown
215 lines
5.1 KiB
Markdown
# CISD 初始化 API Curl 样例集
|
||
|
||
- 日期:2026-03-02
|
||
- 适用接口前缀:`/api/v1/device`、`/api/v1/init`
|
||
- 说明:以下样例用于联调,不包含生产鉴权与审计策略
|
||
|
||
## 1. 公共变量
|
||
|
||
```bash
|
||
BASE_URL="${BASE_URL:-http://127.0.0.1:8080}"
|
||
INTERNAL_TOKEN="${INTERNAL_TOKEN:-change-me-internal-token}"
|
||
```
|
||
|
||
## 2. 查询设备预置版本信息
|
||
|
||
```bash
|
||
curl -sS \
|
||
-H "X-Internal-Token: ${INTERNAL_TOKEN}" \
|
||
"${BASE_URL}/api/v1/device/status" | jq
|
||
```
|
||
|
||
预期关键字段:
|
||
|
||
1. `data.presetProductType`:`ENTERPRISE|INDIRECT|DIRECT`
|
||
2. `data.presetVersion`
|
||
|
||
## 3. 企业/间参请求体(RabbitMQ)
|
||
|
||
```bash
|
||
cat > /tmp/cisd-init-standard-rabbit.json <<'JSON'
|
||
{
|
||
"orgCodeType": "BIC",
|
||
"orgCode": "AAAABBBBXXX",
|
||
"orgNameCn": "测试机构",
|
||
"orgNameEn": "TEST BANK",
|
||
"deployMode": "SINGLE",
|
||
"nodes": {
|
||
"node01Ip": "10.0.0.11"
|
||
},
|
||
"mq": {
|
||
"mqType": "RABBITMQ",
|
||
"channelUsername": "cisd_channel_user",
|
||
"channelPassword": "cisd_channel_pass"
|
||
},
|
||
"licenses": {
|
||
"receiverLicenseFileId": "file-receiver-001"
|
||
}
|
||
}
|
||
JSON
|
||
```
|
||
|
||
## 4. 企业/间参请求体(TLQ)
|
||
|
||
```bash
|
||
cat > /tmp/cisd-init-standard-tlq.json <<'JSON'
|
||
{
|
||
"orgCodeType": "BIC",
|
||
"orgCode": "AAAABBBBXXX",
|
||
"orgNameCn": "测试机构",
|
||
"orgNameEn": "TEST BANK",
|
||
"deployMode": "DUAL",
|
||
"nodes": {
|
||
"node01Ip": "10.0.0.11",
|
||
"node02Ip": "10.0.0.12"
|
||
},
|
||
"mq": {
|
||
"mqType": "TLQ",
|
||
"channelUsername": "cisd_channel_user",
|
||
"channelPassword": "cisd_channel_pass",
|
||
"tlqLicenseFileId": "file-tlq-license-001"
|
||
},
|
||
"licenses": {
|
||
"receiverLicenseFileId": "file-receiver-001"
|
||
}
|
||
}
|
||
JSON
|
||
```
|
||
|
||
## 5. 轻量化直参请求体(RABBITMQ_TLQ)
|
||
|
||
```bash
|
||
cat > /tmp/cisd-init-direct-tlq.json <<'JSON'
|
||
{
|
||
"orgCodeType": "BIC",
|
||
"orgCode": "AAAABBBBXXX",
|
||
"orgNameCn": "测试机构",
|
||
"orgNameEn": "TEST BANK",
|
||
"deployMode": "DUAL",
|
||
"nodes": {
|
||
"node01Ip": "10.0.1.11",
|
||
"node02Ip": "10.0.1.12"
|
||
},
|
||
"mq": {
|
||
"mqType": "RABBITMQ_TLQ",
|
||
"channelUsername": "cisd_channel_user",
|
||
"channelPassword": "cisd_channel_pass",
|
||
"tlqLicenseFileId": "file-tlq-license-001"
|
||
},
|
||
"licenses": {
|
||
"receiverLicenseFileId": "file-receiver-001",
|
||
"cfgZipFileId": "/opt/cpconfig.cfg"
|
||
},
|
||
"signServer": {
|
||
"signHost": "172.30.1.101",
|
||
"signPort": 50006,
|
||
"signType": "Infosec",
|
||
"signCertDn": "CN=051@AAAABBBBXXX@7321@1,OU=Org,OU=CIPS,O=CFCA OCA1,C=CN",
|
||
"signCertSn": "1154809590",
|
||
"signPassword": "secret"
|
||
},
|
||
"directTlq": {
|
||
"localNodeSeq": "A",
|
||
"upstreamInstitutions": "CIPSCNSHXXX;CIPSCNWXXXX",
|
||
"upstreamCocCount": 2
|
||
}
|
||
}
|
||
JSON
|
||
```
|
||
|
||
## 6. 轻量化直参请求体(RABBITMQ_CFMQ)
|
||
|
||
```bash
|
||
cat > /tmp/cisd-init-direct-cfmq.json <<'JSON'
|
||
{
|
||
"orgCodeType": "BIC",
|
||
"orgCode": "AAAABBBBXXX",
|
||
"orgNameCn": "测试机构",
|
||
"orgNameEn": "TEST BANK",
|
||
"deployMode": "SINGLE",
|
||
"nodes": {
|
||
"node01Ip": "10.0.1.11"
|
||
},
|
||
"mq": {
|
||
"mqType": "RABBITMQ_CFMQ",
|
||
"channelUsername": "cisd_channel_user",
|
||
"channelPassword": "cisd_channel_pass",
|
||
"cfmqConfigFileId": "/pmts/cfg/cfmqapi_trans.properties"
|
||
},
|
||
"licenses": {
|
||
"receiverLicenseFileId": "file-receiver-001",
|
||
"cfgZipFileId": "/opt/cpconfig.cfg"
|
||
},
|
||
"signServer": {
|
||
"signHost": "172.30.1.101",
|
||
"signPort": 50006,
|
||
"signType": "Infosec",
|
||
"signCertDn": "CN=051@AAAABBBBXXX@7321@1,OU=Org,OU=CIPS,O=CFCA OCA1,C=CN",
|
||
"signCertSn": "1154809590",
|
||
"signPassword": "secret"
|
||
}
|
||
}
|
||
JSON
|
||
```
|
||
|
||
## 7. 初始化任务执行链路(通用)
|
||
|
||
将 `<REQUEST_JSON>` 替换为上面任一 json 文件路径。
|
||
|
||
```bash
|
||
REQUEST_JSON="/tmp/cisd-init-standard-rabbit.json"
|
||
|
||
# 1) preview
|
||
curl -sS -X POST \
|
||
-H "Content-Type: application/json" \
|
||
-H "X-Internal-Token: ${INTERNAL_TOKEN}" \
|
||
"${BASE_URL}/api/v1/init/preview" \
|
||
-d @"${REQUEST_JSON}" | jq
|
||
|
||
# 2) create task
|
||
TASK_ID="$(curl -sS -X POST \
|
||
-H "Content-Type: application/json" \
|
||
-H "X-Internal-Token: ${INTERNAL_TOKEN}" \
|
||
"${BASE_URL}/api/v1/init/tasks" \
|
||
-d @"${REQUEST_JSON}" | jq -r '.data.taskId')"
|
||
|
||
echo "TASK_ID=${TASK_ID}"
|
||
|
||
# 3) execute task
|
||
curl -sS -X POST \
|
||
-H "X-Internal-Token: ${INTERNAL_TOKEN}" \
|
||
"${BASE_URL}/api/v1/init/tasks/${TASK_ID}/execute" | jq
|
||
|
||
# 4) query steps
|
||
curl -sS \
|
||
-H "X-Internal-Token: ${INTERNAL_TOKEN}" \
|
||
"${BASE_URL}/api/v1/init/tasks/${TASK_ID}/steps" | jq
|
||
```
|
||
|
||
## 8. 单步日志查询(失败定位)
|
||
|
||
```bash
|
||
STEP_NO=3
|
||
curl -sS \
|
||
-H "X-Internal-Token: ${INTERNAL_TOKEN}" \
|
||
"${BASE_URL}/api/v1/init/tasks/${TASK_ID}/steps/${STEP_NO}/log" | jq -r '.data.content'
|
||
```
|
||
|
||
## 9. 常见问题
|
||
|
||
1. 直参 TLQ 报 `directTlq is required`:请求体缺 `directTlq` 三字段。
|
||
2. `APP_MQ_CREDENTIALS_APPLY` 失败:应用配置匹配路径无文件或无写权限。
|
||
3. MQ 连接失败:确认 `TMS_INIT_EXECUTOR_STANDARD_RABBIT_CREDENTIAL_SECRET_KEY` 与收发器解密密钥一致。
|
||
|
||
## 10. 一键执行脚本(推荐)
|
||
|
||
```bash
|
||
chmod +x scripts/cisd_init_flow.sh
|
||
REQUEST_JSON=/tmp/cisd-init-standard-rabbit.json \
|
||
BASE_URL=http://127.0.0.1:8080 \
|
||
INTERNAL_TOKEN=change-me-internal-token \
|
||
./scripts/cisd_init_flow.sh
|
||
```
|
||
|
||
输出目录默认:`/tmp/cisd-init-run/run-<timestamp>`,包含每一步请求响应与失败日志抓取结果。
|