40 lines
3.2 KiB
Markdown
40 lines
3.2 KiB
Markdown
# Integration Service 模块指引
|
|
|
|
## 职责边界
|
|
|
|
- 集中承载百度 OCR、Amazon Logistics/SP-API 等第三方适配器和能力启停状态。
|
|
- 不保存业务主数据,不把第三方 DTO 泄漏为内部领域模型;真实外部调用默认关闭,密钥仅从安全配置注入。
|
|
- 二期入库重量 OCR 由 `file/` 调用本服务;Firstleg 只消费 File 返回的识别结果,不直接依赖供应商协议。
|
|
|
|
## 快速索引
|
|
|
|
| 功能 | 入口 |
|
|
|---|---|
|
|
| 应用与配置扫描 | `src/main/java/com/baiyue/integration/IntegrationServiceApplication.java` |
|
|
| `baiyue.integration` 配置 | `config/IntegrationProperties.java` |
|
|
| 内部供应商状态 API | `controller/IntegrationProviderController.java` |
|
|
| 重量 OCR 内部 API | `controller/WeightOcrController.java`;目录批处理 `POST /internal/integrations/weight-ocr/batches`,单图识别 `POST /internal/integrations/weight-ocr/single` |
|
|
| 能力状态模型与服务 | `dto/ProviderStatus.java`、`service/ProviderStatusService.java` |
|
|
| 适配器抽象 | `provider/IntegrationProviderAdapter.java` |
|
|
| 百度 OCR 状态与客户端 | `provider/BaiduOcrAdapter.java`、`provider/ocr/BaiduMeterClient.java` |
|
|
| 重量 OCR 协议模型 | `dto/ocr/` |
|
|
| 重量 OCR 批处理 | `service/ocr/WeightOcrBatchService.java` |
|
|
| 图片裁剪与重量筛选 | `service/ocr/ImageCropper.java`、`service/ocr/WeightCandidateSelector.java` |
|
|
| OCR 文件访问边界 | `service/ocr/WeightOcrStoragePolicy.java` |
|
|
| 二期调用方 | `../file/src/main/java/com/baiyue/file/client/WeightOcrClient.java`、`../file/src/main/java/com/baiyue/file/service/MeasurementImageService.java`;File 负责图片持久化和业务归属,本服务只返回识别结果 |
|
|
| Amazon | `provider/AmazonLogisticsAdapter.java` |
|
|
| 内部服务令牌 | `security/InternalServiceTokenGuard.java` |
|
|
| 配置与 OCR 测试 | `src/test/java/com/baiyue/integration/config/IntegrationPropertiesTest.java`、`src/test/java/com/baiyue/integration/service/ocr/` |
|
|
| 本地/Nacos 配置 | `src/main/resources/application.yml`、`../config/nacos/{local,cn}/integration-service.yml` |
|
|
|
|
## 修改与验证
|
|
|
|
- 第三方密钥、Token、请求原文和客户敏感数据不得写入源码或日志;配置应支持按供应商独立关闭。
|
|
- 适配器负责外部协议转换、超时、错误归一化和安全降级;业务编排留在调用方服务。
|
|
- 启用真实调用前补齐超时、重试边界、限流、幂等和可观测性,并避免在测试中访问真实供应商。
|
|
- OCR 目录批处理只能访问 `WEIGHT_OCR_INPUT_ROOT` 和 `WEIGHT_OCR_OUTPUT_ROOT` 内的路径,不得恢复任意服务器路径读取。
|
|
- OCR 接口只允许内部服务令牌调用;图片大小、解码像素数、单批数量和并发批次限制不得绕过。
|
|
- OCR 原始响应和第三方密钥不得写入应用日志,真实供应商调用必须保持默认关闭。
|
|
- 单图接口只接收 File 传入的受控图片内容,不负责保存 `file_object`、入库单或重量确认记录;响应 DTO 或错误语义变化时同步检查 File 的 `WeightOcrClient`、`MeasurementImageService` 和契约测试。
|
|
- 从父目录运行 `mvn -pl integration-service -am test`。
|