Request 请求
NocoBase 提供了一个基于 Axios 封装的 APIClient,用于在任意能够获取 Context 的地方都可以发起 HTTP 请求。
常见可获取到 Context 的位置包括:
app.contextengine.contextplugin.contextmodel.context
ctx.api.request()
ctx.api.request() 是最常用的发起请求方法,其参数和返回值与 axios.request() 完全一致。
基本用法
你可以直接使用标准的 Axios 请求配置:
ctx.api.axios
ctx.api.axios 是一个 AxiosInstance 实例,可以通过它修改全局默认配置或添加请求拦截器。
修改默认配置
更多可用配置详见 Axios 默认配置。
请求与响应拦截器
通过拦截器可以在请求发送前或响应返回后进行处理。例如,统一添加请求头、序列化参数、或统一错误提示。
请求拦截器示例
响应拦截器示例
NocoBase Server 自定义请求头
以下是 NocoBase Server 支持的自定义请求头,可用于多应用、国际化、多角色或多认证场景。
💡 提示
这些请求头通常由拦截器自动注入,无需手动设置。仅在特殊场景下(如测试环境或多实例场景)需要手动添加。
在组件中使用
在 React 组件中,可通过 useFlowContext() 获取上下文对象,从而调用 ctx.api 发起请求。
搭配 ahooks 的 useRequest 使用
在实际开发中,可以配合 ahooks 提供的 useRequest Hook,更方便地处理请求的生命周期与状态。
这种方式可以让请求逻辑更加声明化,自动管理加载状态、错误提示与刷新逻辑,非常适合在组件中使用。

