diff --git a/.gitignore b/.gitignore index b4fe469..af3f81f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ yarn-debug.log* yarn-error.log* .DS_Store Thumbs.db +*.sqlite3 diff --git a/README.md b/README.md index 51e2321..458f5a0 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ ## API Proxy Mock -基于 Node.js 的轻量级 **HTTP 代理 + 本地 Mock**:在 `config.json` 里配置要拦截的路径和本地文件,其余请求按配置(HTTP/HTTPS)转发到真实后端。 +基于 Node.js 的轻量级 **HTTP 代理 + 本地 Mock**:路由与 mock 文件路径映射存储在 `sqlite3`,mock 内容仍保存在 `mock/` 目录文件中,其余请求按配置(HTTP/HTTPS)转发到真实后端。 ### 功能说明 - **代理转发**:未命中 Mock 的请求会转发到 `config.targetHost`(由 `targetHttps` 决定 HTTP/HTTPS,`targetPort` 可配)。 - **本地 Mock**:命中路由时直接读取 `mock` 目录下的文件作为响应体。 +- **SQLite 映射**:路由列表、接口列表存储在 `mock/mock-mappings.sqlite3`,数据库只保存路由与文件路径/目录关系。 - **Mock 总开关**:`mockEnabled` 为 `false` 时**不拦截**任何 Mock 路由,全部走代理。 - **热更新**:`reloadOnChange` 为 `true` 时监听 `config.json` 变更并自动重载;也可通过管理接口手动重载。 - **Mock 响应**:带简单 CORS 头,以及 `X-Mock-Source`、`X-Mock-Timestamp` 便于排查。 @@ -69,6 +70,8 @@ npm run typecheck #### `routes` +`routes` 仍会出现在接口返回中用于兼容旧面板;实际持久化以 sqlite 为准。 + | 说明 | | | --- | --- | | **key** | 请求路径,只匹配 **pathname**(不含域名;查询串不参与匹配),例如 `"/api/user/info"`。 | @@ -121,3 +124,4 @@ npm run typecheck - `index.api.ts`:服务入口。 - `config.json`:路由与运行参数。 - `mock/`:Mock 响应文件(文本内容原样返回,按需自行写成 JSON 等)。 +- `mock/mock-mappings.sqlite3`:路由/接口与 mock 文件路径映射(不保存 mock 内容)。 diff --git a/admin.html b/admin.html index 9c819c8..b06eb73 100644 --- a/admin.html +++ b/admin.html @@ -88,6 +88,11 @@ {{ scope.row.filePath }} + + +