API Client 请求库
在 2.17.0 版本中,Halo 提供了新的 @halo-dev/api-client JS 库,用于简化在 Halo 内部、插件的 UI 中、外部应用程序中请求 Halo 接口的逻辑。
此文档将介绍如何通过 @halo-dev/api-client 发起 API 请求。
安装
推荐使用 TypeScript
推荐在项目中引入 TypeScript,可以获得更好的类型提示。
模块介绍
在 @halo-dev/api-client 包中导出了以下模块:
- coreApiClient: 为 Halo 所有自定义模型的 CRUD 接口封装的 API Client。
- consoleApiClient: 为 Halo 针对 Console 提供的接口封装的 API Client。
- ucApiClient: 为 Halo 针对 UC 提供的接口封装的 API Client。
- publicApiClient: 为 Halo 所有公开访问的接口封装的 API Client。
- createCoreApiClient: 用于创建自定义模型的 CRUD 接口封装的 API Client,需要传入 axios 实例。
- createConsoleApiClient: 用于创建 Console 接口封装的 API Client,需要传入 axios 实例。
- createUcApiClient: 用于创建 UC 接口封装的 API Client,需要传入 axios 实例。
- createPublicApiClient: 用于创建公开访问接口封装的 API Client,需要传入 axios 实例。
- axiosInstance: 内部默认创建的 axios 实例。
使用
在 Halo 插件中使用
在 Halo 内部使用
如果需要在 Halo 核心模块中使用 @halo-dev/api-client,可以直接使用 coreApiClient、consoleApiClient、ucApiClient、publicApiClient,无需单独处理异常逻辑和认证逻辑。
示例
在外部程序中使用
在外部程序中使用时,需要自行创建 axios 实例,并使用 createCoreApiClient、createConsoleApiClient、createUcApiClient、createPublicApiClient 创建 API Client,这样可以方便处理异常逻辑和认证逻辑。
查看认证方式
认证方式的说明请参考:认证方式