بنقرة واحدة
static-to-api-layer
静态页面 API 化改造工具:自动发现页面中的隐式数据接口需求,改造页面为标准 API 调用并预留 Mock/真实接口切换层。不负责 contract/mock/docs 产物生成。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
静态页面 API 化改造工具:自动发现页面中的隐式数据接口需求,改造页面为标准 API 调用并预留 Mock/真实接口切换层。不负责 contract/mock/docs 产物生成。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
前端 API 治理工作站:从项目中的真实 API 调用扫描接口,生成结构化契约(contract.json)、MSW Mock、标准接口文档(Markdown + OpenAPI 3.1 YAML),并执行一致性校验与变更追踪。
将 HTML/React/Vue 等前端 Demo 页面转换为微信小程序原生开发项目。重点是转换前端页面和简单交互(页面跳转、提醒等),不涉及业务逻辑,数据集中在 mock.js 中管理。
自动生成计算机软件著作权申请资料
| name | static-to-api-layer |
| description | 静态页面 API 化改造工具:自动发现页面中的隐式数据接口需求,改造页面为标准 API 调用并预留 Mock/真实接口切换层。不负责 contract/mock/docs 产物生成。 |
从静态前端页面出发,聚焦 发现隐式接口需求 → 页面 API 化改造 → 统一请求层 → 切换层预留。
mock.js / 页面 data / useState / constants 中api-extractor-pro 的前置工程化改造支持框架:React / Vue / 微信小程序
本 skill 只做页面和调用层改造,不生成接口治理产物:
wx.request 拦截式 Mock 方案contract.json、openapi.yaml、接口文档、一致性报告接口治理产物(contract/OpenAPI/文档/校验)统一由
api-extractor-pro生成。 小程序 Mock 数据由本 skill 的mock-interceptor-wx.js模板提供,因 MSW 在小程序中不可用。
┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐
│1. Discover │───▶│2. Refactor │───▶│3. API Layer│───▶│4. Switch │
│隐式接口发现 │ │页面改造 │ │统一请求封装 │ │切换层预留 │
└────────────┘ └────────────┘ └────────────┘ └────────────┘
收到用户请求后,按以下步骤启动:
package.json 含 react,目录结构含 src/components / src/pagespackage.json 含 vue,目录结构含 src/views / src/componentsapp.json + project.config.json,页面为 .wxml + .wxss + .js目标:扫描项目中所有页面和数据文件,识别隐式数据接口需求
| # | 接口模式 | 识别特征 | 转化目标 |
|---|---|---|---|
| 1 | 列表查询 | 硬编码数组 const LIST = [...],页面 data 中直接赋值列表 | GET /api/xxx/list |
| 2 | 详情查询 | getXxxById(id)、find(x => x.id === id)、URL 参数取 id | GET /api/xxx/:id |
| 3 | 条件筛选 | .filter()、selectedCategory、条件分支渲染 | GET /api/xxx/list?key=value |
| 4 | 分页加载 | .slice(0, n)、loadMore、page/pageSize 变量 | GET /api/xxx/list?page=1&pageSize=10 |
| 5 | 表单提交 | handleSubmit() 仅有 Toast/alert 无真实请求 | POST /api/xxx |
| 6 | 状态变更 | handleApprove()/handleReject()/handleDelete() 等操作 | PUT /api/xxx/:id/action |
| 7 | 聚合统计 | STATS_* 统计数据、图表数据源 | GET /api/stats/xxx |
| 特征 | React | Vue | 微信小程序 |
|---|---|---|---|
| 数据声明 | useState([...]) / const data = [...] | data() { return { list: [...] } } | Page({ data: { list: [...] } }) |
| 数据加载 | useEffect(() => {...}, []) | mounted() / onMounted() | onLoad() / onShow() |
| 表单提交 | onSubmit / handleSubmit | @submit / methods.submit | bindsubmit / handleSubmit |
| 无效请求标志 | alert('成功') / console.log | ElMessage.success / this.$message | wx.showToast({ title: '成功' }) |
| 数据文件 | mock.js / data.ts / constants.ts | mock.js / data.js | mock.js / 页面 js 内硬编码 |
GET /api/config/xxxwx.chooseImage、<input type="file"> → POST /api/uploadGET /api/user/profile / POST /api/auth/login生成 discovery_report.md(参考 templates/discovery-report.md),包含:
目标:将页面中的硬编码数据源替换为 API 调用
require('...mock') / import ... from '../mock')[] / null / {})loading 状态(为异步加载做准备)onLoad / useEffect / mounted)catch → 错误提示 Toast)目标:生成统一请求基础层 + 模块 API 文件
api/ (或 src/api/)
├── request.js ← 请求封装基础层(含 Mock 切换)
├── resource.js ← 资源模块 API
├── audit.js ← 审核模块 API
├── stats.js ← 统计模块 API
└── config.js ← 配置 API
templates/request-wx.jstemplates/request-axios.jstemplates/request-fetch.js目标:预留一键切换机制,后续联调时无需改动页面代码
页面代码(不改动)
↓ 调用
api/resource.js(不改动)
↓ 调用
api/request.js(改这里)
↓ 根据配置
┌────────────────┐
│ IS_MOCK=true │──→ 项目现有 Mock 方案
│ IS_MOCK=false │──→ 真实 HTTP 请求
└────────────────┘
微信小程序:
const config = {
IS_MOCK: true,
baseURL: '',
}
React/Vue:
const IS_MOCK = import.meta.env.VITE_API_MODE === 'mock'
| 产物 | 路径 | 说明 |
|---|---|---|
| 数据发现报告 | discovery_report.md | 隐式接口需求分析结果 |
| 请求封装 | api/request.js | 统一请求层,含 Mock 切换 |
| API 模块 | api/[module].js | 按模块分组的 API 函数 |
| 改造后页面 | 原页面文件 | 替换为 API 调用 |
1) static-to-api-layer
- 完成页面 API 化改造
- 不生成 contract/mock/docs
2) api-extractor-pro
- 从改造后的 API 调用中扫描并生成 contract
- 统一生成 Mock、OpenAPI、文档、校验和变更报告
getList / getById / create / update / delete)x-todo-confirmtemplates/request-wx.jstemplates/request-axios.jstemplates/request-fetch.jstemplates/mock-interceptor-wx.jstemplates/discovery-report.mdexamples/before-after.md