订单中心 POST /api/oms/v1/sales-goods,校验后写入 rpa_sales_goods_mapping_data(deal_flag=0)。同 omsId 再推回 DUPLICATE,不更新。 Windows 连 Oracle 测;密码只走环境变量。 |
||
|---|---|---|
| .. | ||
| app | ||
| examples | ||
| tests | ||
| README.md | ||
| pyproject.toml | ||
| uv.lock | ||
README.md
rpa_oms
订单中心四接口。本期只开放接口 1:销售商品对码数据接收。
- 路径:
POST /api/oms/v1/sales-goods - 鉴权:header
X-Oms-Token,环境变量OMS_INBOUND_TOKEN - 落表:
rpa_sales_goods_mapping_data(deal_flag=0) - 请求里不跑选品
本地(内存仓库)
cd rpa_oms
uv sync --python 3.12
export OMS_INBOUND_TOKEN=dev-oms-token
export OMS_REPO=memory
uv run uvicorn app.main:app --reload --port 8001
curl -sS http://127.0.0.1:8001/api/oms/v1/sales-goods \
-H 'Content-Type: application/json' \
-H 'X-Oms-Token: dev-oms-token' \
-d @examples/sales_goods_batch.json
单测:uv run pytest -v
真库
Oracle 11.2 需要 Instant Client(thick)。密码只放环境变量。
export OMS_REPO=oracle
export OMS_INBOUND_TOKEN=...
export RPA_ORACLE_HOST=192.168.12.244
export RPA_ORACLE_PORT=1521
export RPA_ORACLE_SERVICE=rpa
export RPA_ORACLE_USER=rpainit
export RPA_ORACLE_PASSWORD=...
export RPA_ORACLE_THICK=1
# 如需指定 Instant Client 目录:
# export RPA_ORACLE_CLIENT_LIB=/path/to/instantclient
缺 RPA_ORACLE_HOST / 用户 / 密码时,收件接口回 503。
Windows 真库
本机 Mac 打不到 192.168.12.244,连库测试在 Windows 上做。Python 3.12 + Instant Client(位数一致),密码不要写进仓库。
PowerShell:
cd rpa_oms
uv sync --python 3.12
$env:OMS_REPO = "oracle"
$env:OMS_INBOUND_TOKEN = "dev-oms-token"
$env:RPA_ORACLE_HOST = "192.168.12.244"
$env:RPA_ORACLE_PORT = "1521"
$env:RPA_ORACLE_SERVICE = "rpa"
$env:RPA_ORACLE_USER = "rpainit"
$env:RPA_ORACLE_PASSWORD = "这里填密码"
$env:RPA_ORACLE_THICK = "1"
$env:RPA_ORACLE_CLIENT_LIB = "C:\oracle\instantclient"
uv run uvicorn app.main:app --host 0.0.0.0 --port 8001
先 GET http://127.0.0.1:8001/health,再把 examples/sales_goods_batch.json POST 两次:
- 第一次:两条
ACCEPTED,表里各一行deal_flag=0 - 第二次:两条
DUPLICATE,表行数不变
curl.exe -sS http://127.0.0.1:8001/api/oms/v1/sales-goods `
-H "Content-Type: application/json" `
-H "X-Oms-Token: dev-oms-token" `
--data-binary "@examples/sales_goods_batch.json"