80 lines
2.2 KiB
Markdown
80 lines
2.2 KiB
Markdown
# rpa_oms
|
||
|
||
订单中心四接口。本期只开放接口 1:销售商品对码数据接收。
|
||
|
||
- 路径:`POST /api/oms/v1/sales-goods`
|
||
- 鉴权:header `X-Oms-Token`,环境变量 `OMS_INBOUND_TOKEN`
|
||
- 落表:`rpa_sales_goods_mapping_data`(`deal_flag=0`)
|
||
- 请求里不跑选品
|
||
|
||
## 本地(内存仓库)
|
||
|
||
```bash
|
||
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
|
||
```
|
||
|
||
```bash
|
||
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)。密码只放环境变量。
|
||
|
||
```bash
|
||
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:
|
||
|
||
```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 两次:
|
||
|
||
1. 第一次:两条 `ACCEPTED`,表里各一行 `deal_flag=0`
|
||
2. 第二次:两条 `DUPLICATE`,表行数不变
|
||
|
||
```powershell
|
||
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"
|
||
```
|