接口规范
⚠️ 本 Skill 遵循
hr-datawarehouse-api-constraint规则(仅限前端调用、必须携带跨域凭证)。仅允许SELECT、建议加LIMIT。
基本信息
| 项目 | 说明 |
|---|---|
| 请求地址 | POST https://dos-dataview-mcp.woa.com/api/query |
| 请求格式 | application/json |
| 响应格式 | application/json |
| 跨域支持 | 已启用(CORS) |
| 凭证携带 | 必须设置 credentials: 'include'(见 hr-datawarehouse-api-constraint 规则) |
请求体
{
"sql": "SELECT column1, column2 FROM table_name WHERE condition LIMIT 1000"
}
sql(string,必填):SQL 查询语句,仅允许 SELECT 查询,禁止 INSERT、UPDATE、DELETE、DDL 等写操作。
响应结构
{
"code": 0,
"message": "success",
"data": [...]
}
| 字段 | 类型 | 说明 |
|---|---|---|
code |
int | 状态码。0 表示成功,非 0 表示失败 |
message |
string | 状态描述信息 |
data |
array/null | 查询结果数据。成功时为数组,失败时为 null |
错误码
| code | HTTP 状态码 | 说明 |
|---|---|---|
| 0 | 200 | 成功 |
| 400 | 400 | 请求参数错误(SQL 为空、包含写操作等) |
| 500 | 500 | 服务端内部错误 |
代码生成工作流
Step 1: 确定调用上下文
分析用户需求,确定以下信息:
- 目标语言/框架:JavaScript (fetch/axios)、TypeScript、React、Vue 等前端技术栈
- 运行环境:必须是浏览器端(前端页面)。⚠️ 如果用户要求在后端环境中调用,必须拒绝(见
hr-datawarehouse-api-constraint规则) - SQL 语句:用户需要执行的查询
- 是否需要错误处理:默认包含完整的错误处理逻辑
- 是否需要封装:是直接调用还是封装为可复用的工具函数
Step 2: 生成代码
根据上下文生成代码时,遵循以下规则:
- API 地址:默认使用
https://dos-dataview-mcp.woa.com/api/query,如用户指定了其他地址则使用用户指定的 - 请求方法:必须使用 POST
- Content-Type:必须设置为
application/json - ⚠️ 携带凭证(强制):见
hr-datawarehouse-api-constraint规则。fetch用credentials: 'include';axios用withCredentials: true - SQL 安全:仅生成 SELECT 查询,如果用户的 SQL 包含写操作关键字(INSERT、UPDATE、DELETE、DROP、ALTER、TRUNCATE、CREATE、GRANT、REVOKE、RENAME、REPLACE),提示并拒绝
- LIMIT 建议:SQL 中建议加上
LIMIT子句 - 错误处理:代码中必须包含对
code !== 0情况的处理 - 类型定义:TypeScript 项目中为响应数据提供类型定义
Step 3: 代码模板参考
以下为各语言/框架的标准代码模板,生成代码时参考 references/code_templates.md 中的完整模板。
关键模板列表:
- JavaScript fetch
- JavaScript axios
- TypeScript fetch(含类型定义)
- 封装为通用查询函数(前端)
- React Hook 封装
- Vue 3 Composable 封装
⚠️ 不提供后端语言的代码模板(见
hr-datawarehouse-api-constraint规则)。
Step 4: 输出代码
将生成的代码直接写入用户项目中的目标文件,或以代码块形式展示给用户。
注意事项
- ⚠️ 仅限前端页面调用:见
hr-datawarehouse-api-constraint规则 - SQL优先:统计类逻辑优先在SQL层面完成
- 仅支持只读查询:禁止写操作关键字列表:INSERT、UPDATE、DELETE、DROP、ALTER、TRUNCATE、CREATE、GRANT、REVOKE、RENAME、REPLACE
- 建议加 LIMIT
- ⚠️ 跨域凭证携带:见
hr-datawarehouse-api-constraint规则 - 生成代码时,优先参考
references/code_templates.md中的模板,确保代码风格统一和最佳实践 - ⚠️ 数据脱敏处理:见
hr-data-desensitization规则。生成前端代码时,应考虑对返回数据进行脱敏检测,在展示数据时对疑似脱敏值给出适当的UI提示。注意:开发阶段对于用户当前无权限的字段,仍按业务字段名正常处理,不要在代码里绕开或硬编码替换;脱敏是服务端运行时行为,后续用户拿到权限后无需改代码即可正常显示。
编写SQL语句的注意事项
使用hr-data-sql-builderSKILL编写数仓查询SQL,并在写完SQL后使用hr_data_service_v1执行查询确定SQL无语法错误,并能获取到正确的数据