APIResource
基于 URL 发起请求的通用 API 资源,适用于任意 HTTP 接口。继承自 FlowResource 基类,并扩展了请求配置与 refresh()。与 MultiRecordResource、SingleRecordResource 不同,APIResource 不依赖资源名,直接按 URL 请求,适合自定义接口、第三方 API 等场景。
创建方式:ctx.makeResource('APIResource') 或 ctx.initResource('APIResource')。使用前需设置 setURL();RunJS 上下文中会自动注入 ctx.api(APIClient),无需手动 setAPIClient。
适用场景
基类能力(FlowResource)
所有 Resource 均具备:
请求配置
URL 格式
- 资源风格:支持 NocoBase 资源简写,如
users:list、posts:get,会与 baseURL 拼接 - 相对路径:如
/api/custom/endpoint,与应用的 baseURL 拼接 - 完整 URL:跨域时使用完整地址,目标需配置 CORS
数据拉取
示例
基础 GET 请求
资源风格 URL
POST 请求(带请求体)
监听 refresh 事件
错误处理
自 定义请求头
注意事项
- ctx.api 依赖:RunJS 中
ctx.api由运行环境注入,通常无需手动setAPIClient;若在无上下文的场景使用,需自行设置。 - refresh 即请求:
refresh()会按当前配置发起一次请求,method、params、data 等需在调用前配置好。 - 错误不更新 data:请求失败时
getData()保持原值,可通过getError()获取错误信息。 - 与 ctx.request:简单一次性请求可用
ctx.request();需要响应式数据、事件、错误状态管理时用 APIResource。
相关
- ctx.resource - 当前上下文中的 resource 实例
- ctx.initResource() - 初始化并绑定到 ctx.resource
- ctx.makeResource() - 新建 resource 实例,不绑定
- ctx.request() - 通用 HTTP 请求,适合简单一次性调用
- MultiRecordResource - 面向数据表/列表,支持 CRUD、分页
- SingleRecordResource - 面向单条记录

