halo/ui/packages/api-client/README.md

70 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# @halo-dev/api-client
Halo 2.0 的 JavaScript API 客户端请求库。使用 [OpenAPI Generator](https://openapi-generator.tech/) 生成。
## 使用
```javascript
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 实例。
### 在插件中使用
```shell
pnpm install @halo-dev/api-client axios
```
由于已经在 Console 和 UC 项目中引入并设置好了 Axios 拦截器,所以直接使用即可:
```javascript
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-client`、`axios` 依赖,所以最终产物中的相关依赖会自动使用 Halo 本身提供的依赖,无需关心最终产物大小。
详细文档可查阅:[插件开发 / API 请求](https://docs.halo.run/developer-guide/plugin/api-reference/ui/api-request)
### 在外部项目中使用
```shell
pnpm install @halo-dev/api-client axios
```
```javascript
import axios from "axios"
const axiosInstance = axios.create({
baseURL: "http://localhost:8090"
})
const coreApiClient = createCoreApiClient(axiosInstance)
coreApiClient.content.post.listPost().then(response => {
// handle response
})
```