注册征信解析Mock路由并补充说明

This commit is contained in:
wkc
2026-03-23 15:21:51 +08:00
parent d7f34f009d
commit 97b3783c53
3 changed files with 55 additions and 3 deletions

View File

@@ -1,12 +1,13 @@
# 流水分析 Mock 服务器
基于 Python + FastAPI 的独立 Mock 服务器,用于模拟流水分析平台的 7 个核心接口。
基于 Python + FastAPI 的独立 Mock 服务器,用于模拟流水分析平台的 7 个核心接口,并提供征信解析 Mock 能力
## ✨ 特性
-**完整的接口模拟** - 实现所有 7 个核心接口
-**文件解析延迟** - 使用 FastAPI 后台任务模拟 4 秒解析延迟
-**错误场景触发** - 通过 `error_XXXX` 标记触发所有 8 个错误码
-**征信解析 Mock** - 支持稳定随机生成三大主题域征信 `payload`
-**自动 API 文档** - Swagger UI 和 ReDoc 自动生成
-**配置驱动** - JSON 模板文件,易于修改响应数据
-**零配置启动** - 开箱即用,无需数据库
@@ -100,6 +101,44 @@ response = requests.post(
)
```
### 征信解析 Mock
```bash
curl -s -X POST http://localhost:8000/xfeature-mngs/conversation/htmlEval \
-F model=LXCUSTALL \
-F hType=PERSON \
-F file=@./sample-credit.html
```
成功时返回:
```json
{
"message": "成功",
"status_code": "0",
"payload": {
"lx_header": {},
"lx_debt": {},
"lx_publictype": {}
}
}
```
调试错误码时,可在 `model` 中追加错误标记:
```bash
curl -s -X POST http://localhost:8000/xfeature-mngs/conversation/htmlEval \
-F model=error_ERR_10001 \
-F hType=PERSON \
-F file=@./sample-credit.html
```
健康检查:
```bash
curl -s http://localhost:8000/credit/health
```
### 错误场景测试
```python
@@ -213,6 +252,8 @@ pytest tests/ -v --cov=. --cov-report=html
| 4 | POST | `/watson/api/project/upload/getpendings` | 检查解析状态 |
| 5 | POST | `/watson/api/project/batchDeleteUploadFile` | 删除文件 |
| 6 | POST | `/watson/api/project/getBSByLogId` | 获取银行流水 |
| 7 | POST | `/xfeature-mngs/conversation/htmlEval` | 征信解析 Mock |
| 8 | GET | `/credit/health` | 征信解析健康检查 |
## ⚠️ 错误码列表

View File

@@ -7,7 +7,7 @@ import argparse
import os
from fastapi import FastAPI
from routers import api
from routers import api, credit_api
from config.settings import settings
# 创建 FastAPI 应用实例
@@ -16,7 +16,7 @@ app = FastAPI(
description="""
## 流水分析 Mock 服务器
模拟流水分析平台的 7 个核心接口,用于开发和测试。
模拟流水分析平台的 7 个核心接口,并补充征信解析接口,用于开发和测试。
### 主要功能
@@ -26,6 +26,7 @@ app = FastAPI(
- **解析状态** - 轮询检查文件解析状态
- **文件删除** - 批量删除上传的文件
- **流水查询** - 分页获取银行流水数据
- **征信解析** - 上传 HTML 并返回结构化征信 payload
### 错误模拟
@@ -39,6 +40,7 @@ app = FastAPI(
2. 上传文件: POST /watson/api/project/remoteUploadSplitFile
3. 轮询解析状态: POST /watson/api/project/upload/getpendings
4. 获取流水: POST /watson/api/project/getBSByLogId
5. 征信解析: POST /xfeature-mngs/conversation/htmlEval
""",
version=settings.APP_VERSION,
docs_url="/docs",
@@ -47,6 +49,7 @@ app = FastAPI(
# 包含 API 路由
app.include_router(api.router, tags=["流水分析接口"])
app.include_router(credit_api.router, tags=["征信解析接口"])
@app.get("/", summary="服务根路径")

View File

@@ -1,5 +1,6 @@
import pytest
from main import app
from main import parse_args as parse_main_args
from dev import parse_args as parse_dev_args
@@ -17,3 +18,10 @@ def test_main_parse_args_should_accept_all_mode():
def test_dev_parse_args_should_reject_invalid_mode():
with pytest.raises(SystemExit):
parse_dev_args(["--rule-hit-mode", "invalid"])
def test_app_should_register_credit_mock_routes():
paths = {route.path for route in app.routes}
assert "/xfeature-mngs/conversation/htmlEval" in paths
assert "/credit/health" in paths