# LSFX Mock 服务启动说明 ## 适用范围 本文说明 `lsfx-mock-server` 的本地启动方式,以及启动参数 `--rule-hit-mode` 的写法。 服务目录: ```bash cd lsfx-mock-server ``` ## 普通启动 普通启动入口为 `main.py`。 ### 默认随机子集模式 ```bash python3 main.py --rule-hit-mode subset ``` ### 全部兼容规则命中模式 ```bash python3 main.py --rule-hit-mode all ``` ## 热重载启动 热重载启动入口为 `dev.py`,不要再直接使用裸 `uvicorn main:app --reload ...` 透传业务参数。 ### 默认随机子集模式 ```bash python3 dev.py --reload --rule-hit-mode subset ``` ### 全部兼容规则命中模式 ```bash python3 dev.py --reload --rule-hit-mode all ``` ## 启动参数说明 ### `--rule-hit-mode` 可选值只有两个: - `subset`:默认模式。按 `logId` 稳定随机命中每类规则池中的部分规则。 - `all`:全部兼容规则命中模式。会命中当前已定义的全部可共存规则;如果后续配置了互斥组,会按互斥组优先级保留组内首个规则。 非法值会在启动阶段直接报错退出,例如下面这种写法是不允许的: ```bash python3 main.py --rule-hit-mode invalid ``` ### `--reload` 仅 `dev.py` 支持该参数: ```bash python3 dev.py --reload --rule-hit-mode subset ``` 含义是开启热重载,适合本地开发联调。 ## 推荐用法 ### 日常开发 ```bash python3 dev.py --reload --rule-hit-mode subset ``` ### 规则联调或一次性覆盖更多规则 ```bash python3 dev.py --reload --rule-hit-mode all ``` ### 稳定复现普通启动行为 ```bash python3 main.py --rule-hit-mode subset ``` ## 启动成功后的访问地址 - Swagger UI: `http://localhost:8000/docs` - ReDoc: `http://localhost:8000/redoc` - 健康检查: `http://localhost:8000/health` ## 补充说明 - `RULE_HIT_MODE` 也可以通过环境变量配置,但当前项目推荐优先使用命令行参数,便于直接区分本次启动的命中模式。 - 如果本机 `8000` 端口已被占用,可以临时通过环境变量覆盖端口,例如: ```bash PORT=18000 python3 main.py --rule-hit-mode all PORT=18001 python3 dev.py --reload --rule-hit-mode all ```