接口规范
遵循
hr-datawarehouse-api-constraint规则。指标接口与数仓 SQL 接口同域,共用 SSO 身份认证链路。
| 项目 | 说明 |
|---|---|
| 请求地址 | POST https://dos-dataview-mcp.woa.com/api/indicator |
| 请求格式 | application/json |
| 响应格式 | application/json |
| 跨域支持 | 已启用(CORS) |
请求体
{
"apiCode": "inflow-count-proportion",
"queryParams": {
"commonParam": {},
"numeratorParams": {
"flowInBeginDate": "2025-01-21",
"flowInEndDate": "2025-03-22",
"org": ["OA000001"]
},
"denominatorParams": {
"flowInBeginDate": "2025-01-21",
"flowInEndDate": "2025-03-22",
"org": ["OA000001"]
},
"groupByList": ["org", "careerLevelName"]
}
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
apiCode |
String | 是 | 指标 API 编码,如 inflow-count-proportion |
queryParams |
Object | 否 | 查询参数对象 |
queryParams 结构:
| 字段 | 类型 | 说明 |
|---|---|---|
commonParam |
Object | 通用查询参数 |
numeratorParams |
Object | 分子查询参数 |
denominatorParams |
Object | 分母查询参数 |
groupByList |
String[] | 分组维度代码数组,如 ["org", "careerLevelName"] |
queryParams结构与 MCP 工具indicator_query的queryParams参数一致,可直接复用indicator-querySKILL 的产出。
响应结构
{
"code": 0,
"message": "success",
"data": [{ "org": "OA000001", "careerLevelName": "T8", "count": 12, "proportion": 0.35 }]
}
| 字段 | 类型 | 说明 |
|---|---|---|
code |
int | 0 成功,非 0 失败 |
message |
string | 状态描述 |
data |
array/null | 指标查询结果 |
错误码
| code | 说明 |
|---|---|
0 |
成功 |
400 |
apiCode 为空 |
401 |
未认证:未找到 staffId |
403 |
无指标访问权限(indicatorPowerResult 为 false) |
500 |
指标服务异常 |
硬规则
✅ DO
- 仅在前端浏览器代码中调用此接口
- 必须携带跨域凭证:
fetch用credentials: 'include';axios用withCredentials: true - 请求体必须包含
apiCode字段 - 占比/率类指标:
numeratorParams与denominatorParams中"范围"类参数的键名必须逐字一致 - 遵循
hr-data-desensitization规则:脱敏是服务端运行时行为,前端按业务字段名正常处理,不要硬编码绕开 - 如需确定
apiCode与参数定义,先使用indicator-querySKILL 完成指标匹配
❌ DON'T
- 禁止在 Node.js / Python / Go / Java 等后端代码中调用(无 SSO 身份,会报 401)
- 禁止手动设置
x-tai-identity请求头(由网关根据 SSO Cookie 自动注入) - 禁止在请求体中放
staffId(由AuthenticationFilter从身份头注入,前端无需传)
代码模板
各前端技术栈的标准调用模板见 references/code_templates.md,覆盖:fetch / axios / TypeScript / React Hook / Vue 3 Composable。生成代码时优先参考模板,确保凭证携带与错误处理不遗漏。