UNPKG

whistle.mock-plugins

Version:

Whistle 插件,用于快速创建 API 模拟数据

247 lines (198 loc) 5.85 kB
# whistle.mock-plugin API 文档 本文档描述了 whistle.mock-plugin 插件的 API 接口和数据模型 ## 数据模型 ### 功能模块 (Feature) 功能模块是接口的分组,用于组织和管理相关的接口 | 字段 | 类型 | 描述 | | --- | --- | --- | | id | string | 功能模块唯一标识符 | | name | string | 功能模块名称 | | description | string | 功能模块描述 | | interfaceCount | number | 该功能模块下的接口数量 | | active | boolean | 功能模块是否启用 | | createdAt | string | 创建时间,ISO 字符串格式 | | updatedAt | string | 最后更新时间,ISO 字符串格式 | ### 接口 (Interface) 接口定义了匹配规则和响应内容,用于模拟 API 响应 | 字段 | 类型 | 描述 | | --- | --- | --- | | id | string | 接口唯一标识符 | | featureId | string | 所属功能模块 ID | | name | string | 接口名称 | | urlPattern | string | URL 匹配规则,支持精确匹配通配符和正则表达式 | | proxyType | string | 代理类型,可选值: 'response'(数据模板), 'redirect'(URL重定向), 'file'(文件代理) | | responseContent | string | 响应内容,使用 Mock.js 语法 | | targetUrl | string | 重定向目标 URL,仅在 proxyType='redirect' 时有效 | | filePath | string | 文件路径,仅在 proxyType='file' 时有效 | | httpStatus | number | HTTP 状态码 | | responseDelay | number | 响应延迟,单位毫秒 | | httpMethod | string | HTTP 方法,可选值: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS', 'ALL' | | active | boolean | 接口是否启用 | | contentType | string | 响应内容类型 | | headers | object | 自定义响应头 | | createdAt | string | 创建时间,ISO 字符串格式 | | updatedAt | string | 最后更新时间,ISO 字符串格式 | ### API 响应 (ApiResponse) 所有 API 接口的标准响应格式 | 字段 | 类型 | 描述 | | --- | --- | --- | | code | number | 状态码,0 表示成功,其他值表示错误 | | message | string | 状态消息 | | data | any | 响应数据,具体结构根据接口而定 | ## API 接口 ### 功能模块 #### 获取所有功能模块 ``` GET /cgi-bin/features ``` 请求参数:无 响应示例: ```json { "code": 0, "message": "成功", "data": [ { "id": "1", "name": "用户管理", "description": "用户相关接口", "interfaceCount": 3, "active": true, "createdAt": "2023-01-01T00:00:00.000Z", "updatedAt": "2023-01-01T00:00:00.000Z" } ] } ``` #### 获取指定功能模块的接口列表 ``` GET /cgi-bin/interfaces?featureId={featureId} ``` 请求参数: | 参数 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | featureId | string || 功能模块 ID | 响应示例: ```json { "code": 0, "message": "成功", "data": [ { "id": "1", "featureId": "1", "name": "获取用户信息", "urlPattern": "/api/users/*", "proxyType": "response", "responseContent": "{\"code\":0,\"data\":{\"id\":1,\"name\":\"test\"}}", "httpStatus": 200, "contentType": "application/json; charset=utf-8", "active": true } ] } ``` ### 接口 #### 创建接口 ``` POST /cgi-bin/interfaces ``` 请求参数: | 参数 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | name | string || 接口名称 | | featureId | string || 功能模块 ID | | urlPattern | string || URL 匹配规则 | | proxyType | string || 代理类型,默认 'response' | | responseContent | string || 响应内容 | | httpStatus | number || HTTP 状态码,默认 200 | | contentType | string || 响应内容类型 | | active | boolean || 是否启用,默认 true | 响应示例: ```json { "code": 0, "message": "接口创建成功", "data": { "id": "1", "featureId": "1", "name": "获取用户信息", "urlPattern": "/api/users/*", "proxyType": "response", "responseContent": "{\"code\":0,\"data\":{\"id\":1,\"name\":\"test\"}}", "httpStatus": 200, "contentType": "application/json; charset=utf-8", "active": true } } ``` #### 更新接口 ``` PUT /cgi-bin/interfaces?id={id} ``` 请求参数: | 参数 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string || 接口 ID (URL参数) | | name | string || 接口名称 | | urlPattern | string || URL 匹配规则 | | proxyType | string || 代理类型 | | responseContent | string || 响应内容 | | httpStatus | number || HTTP 状态码 | | contentType | string || 响应内容类型 | | active | boolean || 是否启用 | 响应示例: ```json { "code": 0, "message": "接口更新成功", "data": { "id": "1", "featureId": "1", "name": "获取用户信息", "urlPattern": "/api/users/*", "proxyType": "response", "responseContent": "{\"code\":0,\"data\":{\"id\":1,\"name\":\"updated\"}}", "httpStatus": 200, "contentType": "application/json; charset=utf-8", "active": true } } ``` #### 删除接口 ``` DELETE /cgi-bin/interfaces?id={id} ``` 请求参数: | 参数 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string || 接口 ID (URL参数) | 响应示例: ```json { "code": 0, "message": "接口删除成功", "data": null } ``` #### 测试接口 ``` POST /cgi-bin/test-interface ``` 请求参数: | 参数 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | url | string || 测试 URL | | interfaceId | string || 接口 ID | 响应示例: ```json { "code": 0, "message": "成功", "data": { "statusCode": 200, "contentType": "application/json; charset=utf-8", "responseBody": "{\"code\":0,\"data\":{\"id\":1,\"name\":\"test\"}}" } } ```