# @confighub/api 中文文档

规范地址：https://npmcn.com/package/%40confighub/api/

版本：0\.10\.11
npm 元数据更新时间：2026-11-08T01:04:44.501Z
中文译文更新时间：2026-11-10T15:22:03.445Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40confighub/api
原文对照：https://npmcn.com/package/%40confighub/api/?lang=original
项目主页：https://github.com/confighub/js-sdk/tree/main/packages/api#readme
源码仓库：https://github.com/confighub/js-sdk

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：6.2 MB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-07-07T08:43:07.062Z
- 最新版本发布：2026-11-08T01:04:44.143Z
- 近 30 天下载量：9013（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：108（近 12 个月 108 个）

## 中文简介

配置Hub API 的已输入、框架不可知客户端

## 安装

```sh
npm install @confighub/api
```

也可以使用：`pnpm add @confighub/api`、`yarn add @confighub/api`、`bun add @confighub/api`

## README

# @ fighub/ api (帮助)

输入的、框架不可知的客户端 [配置图](https://confighub.com/) API, (英语), 由 CfigHub OpenAPI 光谱生成。 建造在 [openapi 牵引](https://openapi-ts.dev/openapi-fetch/) - 一些KB,没有Redux,没有 反应,不需要提供者. 每个路径、参数和响应都按 已绑定的服务器版本 .

```ts
import { createConfigHubClient } from '@confighub/api';

const api = createConfigHubClient({
  baseUrl: 'https://hub.confighub.com',
  getToken: () => session.accessToken, // optional; sets Authorization: Bearer
});

const me = await api.GET('/me');
const { data, error } = await api.GET('/space/{space_id}/unit', {
  params: { path: { space_id } },
});
```

## 选项

-   `baseUrl` —— CfigHub 实例的绝对基址.
-   `getToken?` ——返回当前无记名符号(可以是async). 连接成一个 每个请求中间软件。 客户端从不存储或刷新符; 配对 [`@confighub/react-auth`](https://www.npmjs.com/package/@confighub/react-auth) 或者说 提供您自己的符号源 .
-   `onUnauthorized?` ——调用一款401,以便调用者可以刷新或重新登录. 这个 请求不会自动重审.
-   `fetch?` 取消获取执行 .

## 配置数据

该股的配置不是该股的一个领域. `Unit`, (中文(简体) ), `Revision` 财务报告和审定财务报表 `Release` 携带 `DataHash` 财务报告和审定财务报表 `DataSize`;文件本身靠自己的端口生存,为它服务 作为 `application/octet-stream`。 。 。 . `openapi-fetch` 将每个回复描述为 JSON 和 将每个身体序列化 `JSON.stringify`,两者对文档都是错误的——所以使用 而不是直接调用这些路径:

```ts
import { getUnitData, putUnitData, getUnitMutationSources } from '@confighub/api';

const { data: config, dataHash, notModified } = await getUnitData(api, { spaceId, unitId });

const { data: result } = await putUnitData(api, { spaceId, unitId }, config + '\n', {
  ifMatch: dataHash,             // 409 rather than clobbering a concurrent write
  lastChangeDescription: 'note',
  include: 'ConfigData',         // the configuration the write produced
});
const unit = result?.Unit;       // a write answers with the result, not the entity
```

-   `getUnitData` 编号 : `getRevisionData` 编号 : `getReleaseData` 读取文本,然后返回 `DataHash` 从ETAG。 传回去吧 `ifNoneMatch` 获取 `notModified: true` 而不是一个身体 当一切都变了.
-   `putUnitData` 写下来. **每个描述配置应如何降落的参数 属于这里**,而不是在它之前的元数据更新上—— `mergeExternalSource`, (中文(简体) ), `mergeBase`, (中文(简体) ), `mergeEnableSubtraction`, (中文(简体) ), `protect`, (中文(简体) ), `clearance`, (中文(简体) ), `tag`, (中文(简体) ), `subgroup`, (中文(简体) ), `changeSetId`, (中文(简体) ), `lastChangeDescription` 财务报告和审定财务报表 `dryRun`。元数据调用更改 配置,所以发送到的任何东西都默默地掉下.
-   一个 **空配置是一个配置** ——空出一个单位就是其资源状况 被撤回了 所以永远不要用 `if (config)`。 。 。 .
-   `getUnitMutationSources` 编号 : `getRevisionMutationSources` 读取每个值的设置.

将清单改为:每个股一次多次而不是一次请求。 这些是普通的JSON, 因此客户端直接处理它们:

```ts
const { data } = await api.GET('/unit_data', {
  params: { query: { where: `SpaceID = '${spaceId}'` } },
});
```

`/revision_data`, (中文(简体) ), `/unit_mutation_sources` 财务报告和审定财务报表 `/revision_mutation_sources` 一样 形状。 四者皆以组织为范围并取一 `where` 条款.

## 随操作结果写答案

`POST /space/{id}/unit`, (中文(简体) ), `PUT` 财务报告和审定财务报表 `PATCH` 一,数据写入,批量形成全部 返回时 `UnitCreateOrUpdateResponse` 而不是一个 `Unit` - 未包装 `.Unit`名称 `ConfigData` 或者说 `MutationSources` 内 `include` 添加操作的配置 生产,以及其中的每个值 `dryRun` 那是唯一的结果 已存在, 因为没有存储 。 一个 `include` 既非命名,也非可扩展 字段为 400.

## 类型

全部产生的表面被导出用于再利用 :

```ts
import type { paths, components } from '@confighub/api';
type Unit = components['schemas']['Unit'];
```

`Data` 财务报告和审定财务报表 `MutationSources` 不属于任何实体的字段,因此在 `select` 这是一个400而不是一个默默缺席的领域。 有一个内容散列, `DataHash`· ; `ContentHash` 财务报告和审定财务报表 `RevisionHash` 已经不复存在.

Types 描述 ConfigHub 服务器的 API 软件包所携带的版本.

## 常见问题

### @confighub/api 是什么？

配置Hub API 的已输入、框架不可知客户端

### 如何安装 @confighub/api？

在项目目录运行 npm install @confighub/api，或使用 pnpm add / yarn add / bun add。

### @confighub/api 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @confighub/api 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @confighub/api 可以商用吗？

@confighub/api 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @confighub/api 的下载量有多少？

根据 npm 官方下载统计，@confighub/api 在 2026/10/11 – 2026/11/09 这 30 天内被下载 9,013 次，日均约 300 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @confighub/api 还在维护吗？

最新版本 0\.10\.11 发布于 2026/11/08（2 天前）；至今共发布 108 个版本，其中过去 12 个月发布了 108 个；首次发布于 2026/07/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

