mirror of https://github.com/halo-dev/halo
				
				
				
			
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
| # @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
 | ||
| })
 | ||
| ```
 |