# @faiber/faiber-reservation 中文文档

规范地址：https://npmcn.com/package/%40faiber/faiber-reservation/

版本：2\.8\.0
npm 元数据更新时间：2026-11-14T09:47:55.740Z
中文译文更新时间：2026-11-14T09:22:57.843Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40faiber/faiber-reservation
原文对照：https://npmcn.com/package/%40faiber/faiber-reservation/?lang=original

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

- 包体积（解压后）：161 kB，24 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-07-18T14:30:03.410Z
- 最新版本发布：2026-11-14T09:47:55.546Z
- 近 30 天下载量：3717（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：66（近 12 个月 66 个）

## 中文简介

可订服务、供应商、供应商服务任务、工作时间安排、生成和可用的时间档以及预订.

## 安装

```sh
npm install @faiber/faiber-reservation
```

也可以使用：`pnpm add @faiber/faiber-reservation`、`yarn add @faiber/faiber-reservation`、`bun add @faiber/faiber-reservation`

## README

# @faiber/faiber-保留

可订服务、供应商、供应商服务任务、工作时间安排、生成和可用的时间档以及预订.

## 安装

```bash
npm install @faiber/faiber-reservation
```

## 配置

```ts
import { FaiberClient, MemoryTokenProvider } from "@faiber/sdk-core";
import { ReservationApi } from "@faiber/faiber-reservation";

const tokens = new MemoryTokenProvider();
const client = new FaiberClient("reservation", {
  domains: { reservation: process.env.FAIBER_RESERVATION_URL! },
  tokenProvider: tokens,
  axios: { timeout: 15_000, withCredentials: true },
});
const api = new ReservationApi(client);

const slots = await api.availableSlots({
  provider_id: 42,
  service_id: 8,
  date: "2026-07-22",
});
await api.setSchedules(42, {
  schedules: [{ day_of_week: "monday", start_time: "09:00", end_time: "12:00" }],
});
const generated = await api.generateSlots({
  provider_id: 42, service_id: 8,
  from_date: "2026-11-02", to_date: "2026-11-02",
});
console.log(generated.data.data); // number of newly generated rows
const booking = await api.reservations.create({
  time_slot_id: 73,
  user_id: "00000000-0000-4000-8000-000000000042", // actual IDP customer UUID
  notes: "Consultation",
});
await api.reservations.delete(booking.data.data.id); // cancel; data:null
```

## 完全能力

该套件暴露出30个来源自留置服务业务. 通用工作流程有简洁的方法 `api`;每个已注册后端路由在 `api.operations`。生成的操作输入、查询、响应、路径、动词和许可合同从 `operations.types`。 。 。 .

| 区域 | 业务 | HTTP 方法 |
| --- | --: | --- |
| `integration` | 1个 | `GET` |
| `provider` | 第8条 | `DELETE`, (中文(简体) ), `GET`, (中文(简体) ), `PATCH`, (中文(简体) ), `POST` |
| `reservation` | 页:1 | `DELETE`, (中文(简体) ), `GET`, (中文(简体) ), `PATCH`, (中文(简体) ), `POST` |
| `reservation-service` | 页:1 | `DELETE`, (中文(简体) ), `GET`, (中文(简体) ), `PATCH`, (中文(简体) ), `POST` |
| `router` | 3个 | `GET` |
| `time-slot` | 页:1 | `DELETE`, (中文(简体) ), `GET`, (中文(简体) ), `PATCH`, (中文(简体) ), `POST` |
| `work-schedule` | 2个 | `GET`, (中文(简体) ), `PUT` |

供应商、服务、时间档和预订身份证为当地号码;客户和链接供应商 `user_id` 值是 IDP UUID 字符串。 预订创建需要 `time_slot_id`, (中文(简体) ), `user_id` 和可选 `notes`;它从现有槽中获取提供者/服务。 提供方容量默认为 1并使用活动旗 `is_active`。 。 。 .

目录/提供者/预订列表返回 `{status,message,data:{data:[...],meta:{page,page_size,total_items,total_pages}}}`。可用性、时间表和指定服务返回未打印的数组 `data`. 预订列表/显示/更新当前返回 `starts_at:null`; 读取间隔的槽。 创建包括档期开始时间. 新建/ 关闭补丁文本字段保留其现有的值.

附表采用工作日名称, `start_time`编号 :`end_time` 内 `HH:MM`选择 `is_active`。设置时间表来替换整个集;一个空阵列可以清除它。 预约时间戳为RFC3339,日期过滤为UTC `YYYY-MM-DD`。本地日历转换属于应用程序演示码.

## 认证和授权

使用一个 `TokenProvider` 以转发已签名用户的 Bearer 令牌,或启用 `withCredentials` 用于安全的 Http 唯一的饼干会话。 挂载服务中间软件需要信任的非无线当前用户、组织上下文以及匹配资源/行动或接受的保留管理对管理业务的赠款。 健康、OpenAPI、可用性和流量元数据GET都是公开的。 每个业务部门都记录其接受的赠款。 SDK不嵌入 API 密钥,证书,本地主机 URL,沙盒主机,或生产主机.

## 投入、询问、答复和运输

所有方法都返回完整的Axios响应,包括状态,头,以及请求ID. 请求机构和查询对象被命名为导出接口. 网纹页化使用密钥, 如 `page[number]` 财务报告和审定财务报表 `page[size]` 服务需要时。 标准 Axios 请求选项、信头、超时、适配器、拦截器和 `AbortSignal` 取消被支持为最后参数.

一般性的REST资源得到能力保障。 调用未注册的遗留方法 `UnsupportedOperationError` 在发送请求之前, 而不是生成后端 `405`。 。 。 .

## 错误和取消

```ts
try {
  await api.client.get("/health", undefined, { signal: AbortSignal.timeout(5_000) });
} catch (error) {
  // Axios errors retain response.status and the service error body.
}
```

使用 `@faiber/faiber-ts-sdk` 当一个应用程序需要多个具有一个配置的Faiber服务时.

### 能力、时间和历史

供应商有 `capacity`1.1000(默认1),由重叠任用分担 他们所有的服务。 生成生成单独的单一索赔槽ID; 不通过时间戳或使用合并它们 `is_reserved` 更新以制作/发布预订. `operations.providerCapacityReportGet(providerId, {"page[number]":1,"page[size]":20})` 返回带有容量、当前/未来峰值、观察时间和页面的锁定快照 遗留的冲突窗口。 它不保留录用;再次预订检查能力.

可用/生成日期严格世界协调时 `YYYY-MM-DD`; 任用时间戳 这是RFC3339。 Pagination 使用括号中的密钥并默认为1/20,并有页码1.100. 无效的界限/ 状态/ 日期失败; 世代是界限、 原子和可重复的 .

取消使用 DELETE, 但保留预订历史和返回 `{status,message,data:null}`。 。 。 . 重复取消成功,而不发布同一档次的更新预订. 提供者/服务/槽删除可以返回409,以保护索赔或历史。 单位值 关联/删除收据也携带 `data:null`。然后阅读订票 需要更新其状态。 公共可用性不包括遗留的用户持有的空档.

管理电话需要信任的非无当前用户和组织头, 加上来源的资源/行动或接受的保留管理赠款. 仅凭角色标签并不能授权行动. 案件依赖他们的信任 单项目路由界限;客户不得发明组织身份. 客户UUID的存在和项目成员需要犬类国内流离失所者检查; 这些本地的SDK测试没有建立活网关或交叉服务身份约束.

## 常见问题

### @faiber/faiber-reservation 是什么？

可订服务、供应商、供应商服务任务、工作时间安排、生成和可用的时间档以及预订\.

### 如何安装 @faiber/faiber-reservation？

在项目目录运行 npm install @faiber/faiber-reservation，或使用 pnpm add / yarn add / bun add。

### @faiber/faiber-reservation 支持 TypeScript 吗？

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

### @faiber/faiber-reservation 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @faiber/faiber-reservation 可以商用吗？

@faiber/faiber-reservation 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @faiber/faiber-reservation 的下载量有多少？

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

### @faiber/faiber-reservation 还在维护吗？

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

