halo/ui/packages/api-client
Ryan Wang b822de2d78
Add ui packages publish workflow (#7743)
2025-09-09 18:13:33 +08:00
..
entry feat: add thumbnail records modal (#7630) 2025-07-22 13:54:18 +00:00
src Add support for hidden comments (#7679) 2025-08-19 14:47:37 +08:00
.gitignore Move folder console to ui 2024-02-02 22:22:51 +08:00
.openapi_config.yaml Generate API docs and regenerate API client (#5742) 2024-04-19 02:34:07 +00:00
README.md chore: update prettier and simplify config (#7589) 2025-06-25 09:47:21 +00:00
openapitools.json Generate API docs and regenerate API client (#5742) 2024-04-19 02:34:07 +00:00
package.json Add ui packages publish workflow (#7743) 2025-09-09 18:13:33 +08:00
tsconfig.json feat: add requests library as a global shared dependency 2024-06-25 12:31:44 +08:00
tsdown.config.ts chore: update prettier and simplify config (#7589) 2025-06-25 09:47:21 +00:00

README.md

@halo-dev/api-client

Halo 2.0 的 JavaScript API 客户端请求库。使用 OpenAPI Generator 生成。

使用

import {
  coreApiClient,
  consoleApiClient,
  ucApiClient,
  publicApiClient,
  createCoreApiClient,
  createConsoleApiClient,
  createUcApiClient,
  createPublicApiClient,
  axiosInstance,
} from "@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 实例。

在插件中使用

pnpm install @halo-dev/api-client axios

由于已经在 Console 和 UC 项目中引入并设置好了 Axios 拦截器,所以直接使用即可:

import { coreApiClient } from "@halo-dev/api-client";

coreApiClient.content.post.listPost().then((response) => {
  // handle response
});

此外,在最新的 @halo-dev/ui-plugin-bundler-kit@2.17.0 中,已经排除了 @halo-dev/api-clientaxios 依赖,所以最终产物中的相关依赖会自动使用 Halo 本身提供的依赖,无需关心最终产物大小。

详细文档可查阅:插件开发 / API 请求

在外部项目中使用

pnpm install @halo-dev/api-client axios
import axios from "axios";

const axiosInstance = axios.create({
  baseURL: "http://localhost:8090",
});

const coreApiClient = createCoreApiClient(axiosInstance);

coreApiClient.content.post.listPost().then((response) => {
  // handle response
});