cisd/docs/plans/2026-03-02-cisd-init-api-curl-examples.md
2026-03-05 11:08:57 +08:00

215 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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>`,包含每一步请求响应与失败日志抓取结果。