文档首页 / 数据服务:发布 API 与 MCP 应用

数据服务:发布 API 与 MCP 应用

把查询或流程发布成可调用的 HTTP API 或 MCP 应用:服务类型、应用与凭据、调用约定、流程服务、限流与排障。

概述

权限与入口:data:view 查看;data:edit 新建 / 发布 / 管理应用。菜单:数据服务 → 数据服务

「数据服务」把查询或流程发布成可以被调用的接口,供下游系统或智能体使用。一个服务要先绑定到应用、并且处于已发布状态,才能被调用。

① 新建服务(选类型、定义查询或流程) → ② 上线服务(状态变为「已发布」) → ③ 新建应用(绑定要开放的服务) → ④ 保存凭据(凭据只显示一次) → ⑤ 调用与观察(试调用 · 调用日志)

服务列表

数据服务列表

图:数据服务列表

图中编号说明:

  1. 新建服务(真实环境里是一个下拉菜单,选择服务类型,见下表)。
  2. 页签:「服务」「应用」,以及真实环境里的「调用日志」。
  3. 状态:已发布 / 未发布 / 已下线。列表还显示今日调用、累计调用、平均响应、失败率与最近调用时间。
服务类型 用途
查询服务 选一张真实表和输出列,按字段做等值过滤;可设置必填过滤参数。
SQL 服务 写一条参数化的只读 SELECT;参数以绑定变量方式传入,不会被拼进 SQL。
接收服务 把请求里的 JSON 校验后写进目标表(数据接收 API),只能绑定到普通应用。
流程服务 请求触发一个已发布的轻量流程任务,同步等待或异步应答,并返回任务的输出字段(见 「流程服务:把任务变成接口」)。

服务编辑器里还可以设置 QPS 限额、每分钟限流(令牌桶,所有调用方共享,超限返回 429)和响应缓存秒数(相同参数在有效期内直接返回,重新发布后失效)。限流在集群里是合计值,不是每个实例各算一份。服务详情里有「概览」「试调用」「调用示例」几个页签,可以不离开页面就试一次并复制调用示例。

编辑规则:已发布的服务 / 启用中的应用要先下线 / 停用再编辑;下线或停用后,调用会立即失败。

应用与凭据

应用代表一个调用方:它绑定若干已发布的服务,并持有自己的凭据。调用方只拿应用凭据,不能用管理账号直接调用。

数据服务的应用页签

图:应用列表

图中编号说明:

  1. 新建 MCP 应用(真实环境里旁边还有「新建普通应用」)。
  2. 认证方式:Token / Basic / OAuth 2.0 / HMAC 签名。
  3. 可调用 API:该应用已绑定的服务数(已发布 / 总数)。
应用类型 可选认证方式 说明
普通应用 Token、Basic、OAuth 2.0、HMAC 签名 给业务系统调用 REST 接口;可绑定查询、SQL、接收、流程服务。
MCP 应用 Token、OAuth 2.0 把服务暴露成 MCP 工具给智能体调用;需要为每个工具写名称、描述、适用 / 不适用场景,让模型知道什么时候该调它。
  1. 在「应用」页签点新建,填应用名称、选认证方式和凭据有效期(1–365 天),勾选要开放的 API。
  2. 创建成功后立即保存凭据:Token、Basic 密码、Client Secret、HMAC Secret 都只显示这一次,离开详情页就无法再取回;数据库只存哈希或密文。忘记了只能「轮换」生成新的。
  3. 把「服务器 URL」或「JSON 配置」(MCP 应用)交给调用方;详情里有「调用示例」可直接复制。

安全:应用凭据按调用方单独发放、定期轮换;不要把明文写进工单、聊天或代码仓库。鉴权通过后,平台还会按应用作者当前的 data:edit 复核,作者被降权后应用也不能再写。应用详情里的「访问策略」可以进一步限制来源 IP;使用 IP 白名单时,集群部署需要正确配置可信代理(见部署文档)。

如何调用

业务系统用应用凭据调用服务,具体地址、请求头与示例以服务详情的「调用示例」为准。常见约定:

  • 鉴权放在 Authorization 请求头(Bearer Token / Basic / OAuth 令牌);HMAC 应用使用 X-FDL-App-Id、X-FDL-Timestamp、X-FDL-Nonce、X-FDL-Signature 四个头对请求体签名。
  • 每次请求都会有一个追踪 ID(X-Trace-Id,你也可以自己传),贯穿服务调用、任务运行和 HTTP 节点,排障时拿它在各处搜索。
  • 常见返回码:401 / 403 凭据不对或应用 / 服务被停用;429 超过限流或并发上限;422 参数或业务失败;202 同步等待超时、任务仍在运行。

流程服务:把任务变成接口

需要「调用第三方、整理结果、再返回给业务系统」这类逻辑时,用流程服务:

  1. 把第三方的密钥存进「凭据」,地址存进「环境变量」(凭据、环境变量)。
  2. 新建流程任务,触发方式选「接口调用触发」、模板选「接口调用」,任务自动设为轻量档位(新建任务)。请求体里的字段就是任务参数,在画布里用 HTTP、SQL、参数赋值、条件等节点处理,最后把要返回的值放进输出参数,然后发布。
  3. 数据服务 → 新建服务 → 流程服务:选上面的任务,声明请求参数与响应字段,选择同步或异步应答(同步等待 1–30 秒),发布。
  4. 在「应用」页签新建应用并绑定该服务,在服务详情的「试调用」里先试一次,再交给业务系统。

`` curl -X POST "https://<平台地址>/data/apps/<appId>/services/<serviceId>/invoke" \ -H "Authorization: Bearer <应用凭据>" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: <业务单号,防重复调用>" \ -d '{"order_no": "A20261019001", "amount": 100}' ``

成功返回 200 与输出字段;任务失败返回 422 和原因;同步等待超时返回 202 与运行 ID,之后可凭运行 ID 查询结果。带相同 Idempotency-Key 的重复请求不会重复执行。

调用日志与排障

「调用日志」页签记录每一次调用的状态码、耗时、返回行数和追踪 ID(鉴权失败、被拒绝的请求也会记);可以按追踪 ID 过滤。运维概览里还有「今日调用量 TOP API」「今日错误率 TOP API」。

现象 先检查
401 / 403 应用凭据是否正确、应用是否停用、服务是否已发布、应用作者的权限是否被降低。
429 服务限流 / QPS 或流程服务的并发上限;注意集群里是合计值。
202 一直查不到结果 流程任务是否已发布、任务里用了轻量档位不允许的节点、运行是否失败(看运行详情)。
返回字段不对 服务定义的输出列、流程服务的输出参数映射。

要把整个平台开放给外部智能体(而不只是某几个服务),请看 MCP 接入与访问令牌。

安全建议

  • 应用凭据按调用方单独发放、定期轮换;不要复用管理员账号的访问令牌。
  • 数据服务查询走参数绑定与结果行数上限;不要把敏感表发布给不该看它的应用。
  • 出站调用(HTTP 节点 / 通知渠道 / Webhook)受 SSRF 防护:默认禁止本机和内网,云元数据地址始终禁止;白名单用 FDL_OUTBOUND_ALLOWED_HOSTS。
  • 跨域与 Origin 白名单由 FDL_DATA_API_ALLOWED_ORIGINS / FDL_MCP_ALLOWED_ORIGINS 控制。
  • 对外暴露请放在 TLS 反向代理后,只开放需要的路由;管理 API 不要暴露到公网。

相关文档

联系我们

请填写您的信息,我们将在 1 个工作日内与您联系。