# @dxc-technology/halstack-client 中文文档

规范地址：https://npmcn.com/package/%40dxc-technology/halstack-client/

版本：1\.6\.8
npm 元数据更新时间：2026-09-18T06:19:06.438Z
中文译文更新时间：2026-11-13T01:40:58.240Z
软件包许可：Apache v2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40dxc-technology/halstack-client
原文对照：https://npmcn.com/package/%40dxc-technology/halstack-client/?lang=original
项目主页：https://github.com/dxc-technology/dxc-halstack-client#readme
源码仓库：https://github.com/dxc-technology/dxc-halstack-client

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

- 包体积（解压后）：52 kB，4 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：1 个
- 首次发布：2019-06-26T10:16:17.656Z
- 最新版本发布：2026-09-18T06:19:06.242Z
- 近 30 天下载量：4699（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：209（近 12 个月 19 个）

## 中文简介

DXC 技术 Halstack 客户端

## 安装

```sh
npm install @dxc-technology/halstack-client
```

也可以使用：`pnpm add @dxc-technology/halstack-client`、`yarn add @dxc-technology/halstack-client`、`bun add @dxc-technology/halstack-client`

## README

# JavaScript 的哈尔斯塔克客户端

用于JavaScript的Halstack客户端使开发者能够以声明的方式轻松地与基于超媒体的API合作. 它提供一套功能,以方便超媒体资源之间的导航,并基于 [哈尔](https://datatracker.ietf.org/doc/html/draft-kelly-json-hal) 财务报告和审定财务报表 [JSON 超计划](https://json-schema.org/draft/2019-09/json-schema-hypermedia.html) 规格草案,以及 [DXC API 准则](https://developer.dxc.com/apis) 和HAL扩展.

这个SDK作为客户端-不可知库发布,既可用于浏览器应用程序(如Vanilla JS,React或Angular应用程序)也可用于后端应用程序(NodeJS应用程序). 因此,它作为UMD发行.

## 安装

```sh
npm install @dxc-technology/halstack-client
```

### 用于节点.js

```js
// require from the dependency the modules you need
const {
  HalResource,
  HalResponse,
  HalApiCaller,
} = require("@dxc-technology/halstack-client");
```

### 在浏览器中使用

```js
// require from the dependency the modules you need
import {
  HalResource,
  HalResponse,
  HalApiCaller,
} from "@dxc-technology/halstack-client";
```

## 哈尔资源厂

本单元的目的是便利获取某一特定资源的信息。 这个工厂函数接收一个以 HAL 资源代表为参数的 JSON 对象.

它返回一个 [HalResource 对象](https://npmcn.com/package/%40dxc-technology/halstack-client/#readme-halresource-object),封装最初的 HAL 资源代表并包含一组功能,这些功能将允许您以声明的方式从资源中获取数据,而无需充分了解 HAL 资源代表结构的细节.

这个 `HalResource` 也可以用来帮助开发者创建符合性 `HalResource` 表示将包含在 Hal 响应中,暴露函数以添加通常可以在资源中找到的不同部分.

### HalResource 对象

| 名称 | 类型 | 说明 |
| :-- | :-- | :-- |
| `resourceRepresentation` | `Object` | 整个资源代表. |
| `getTitle` | `()=>String` | 返回资源标题。 从 `\_options.title`。 。 。 . |
| `getInteractions` | `()=>HalInteraction[]` | 返回数组 [哈尔互动](https://npmcn.com/package/%40dxc-technology/halstack-client/#readme-halinteraction-object) 对象。 从 `\_options.links` 阵列. |
| `getInteraction` | `(String)=>HalInteraction` | 接收带有字符串的字符串 `rel` 互动。 返回 [哈尔互动](https://npmcn.com/package/%40dxc-technology/halstack-client/#readme-halinteraction-object) 对象. |
| `getItems` | `()=>Object[]` | 返回原项目链接对象的数组。 从 `\_links.item` 阵列. |
| `getItem` | `(Number)=>Object` | 接收项目索引。 返回项目对象. |
| `getLinks` | `()=>Object[]` | 返回原始链接对象的数组(添加 `rel`,忽略 `item` 链接。 从 `\_links` 对象. |
| `getLink` | `(String)=>Object` | 接收带有字符串的字符串 `rel` 链接。 返回链接对象(添加 `rel`) (中文(简体) ). |
| `getProperties` | `()=>Object[]` | 返回数组 [Hal 财产](https://npmcn.com/package/%40dxc-technology/halstack-client/#readme-halproperty-object) 对象。 取自资源根级属性 . |
| `getProperty` | `(String)=>Object` | 接收带有属性密钥的字符串。 返回 [Hal 财产](https://npmcn.com/package/%40dxc-technology/halstack-client/#readme-halproperty-object) 对象. |
| `getRequiredProperties` | `()=>String[]` | 返回带有所需属性密钥的数组 。 从 `\_options.required` 阵列. |
| `isPropertyRequired` | `(String)=>Bool` | 接收属性的密钥。 如果在 `\_options.required` 阵列. |
| `getSchemaProperties` | `()=>Object[]` | 返回属性的原计划对象数组( 添加) `key`) (中文(简体) ). 从 `\_options.properties` 对象. |
| `getSchemaProperty` | `(String)=>Object` | 接收属性的密钥。 返回属性的策略对象( 添加) `key`如果在其中存在 `\_options.properties` 对象. |
| `addLink` | `(Object)=>void` | 作为参数接收对象。 此对象可以包含通常的链接属性 { `rel`, (中文(简体) ), `name`, (中文(简体) ), `href`, (中文(简体) ), `title` 何处 `rel` 财务报告和审定财务报表 `href` 需要这样做。 这个 `object` 将添加到 `\links` 区域使用 `rel` 作为密钥 |
| `addLinks` | `(Object)=>void` | 作为参数接收对象。 此对象可以包含通常的链接属性 { `rel`, (中文(简体) ), `name`, (中文(简体) ), `href`, (中文(简体) ), `title` 何处 `rel` 财务报告和审定财务报表 `href` 需要这样做。 该对象将被添加到 `\links` 区域使用 `rel` 作为密钥 |
| `addTitle` | `(String)=>void` | 将所收到的参数指定为资源标题 `\_options`标题 |
| `addItem` | `(Object)=>void` | 添加作为参数收到的对象为资源 `\_link` 项目 |
| `addItems` | `(Object[])=>void` | 将列表中作为参数收到的每个对象添加为资源 `\_link` 目 录(续). |
| `addProperties` | `(Object)=>void` | 添加按键:在作为参数接收的对象中发现的值作为资源属性. |
| `addOptionsProperties` | `(Object)=>void` | 添加参数中收到的每个属性为 `\_options.properties` 节 |
| `addOptionsProperty` | `(Object)=>void` | 添加参数中所收到的属性( { key: schema}) 作为属性 `\_options.properties` 节 |
| `addInteraction` | `(Object)=>void` | 添加作为参数收到的对象( E)`{rel: Interaction}`在 `options.link` 节 |
| `addOptions` | `(Object)=>void` | 它接收一个对象作为参数,如果发现这些部分为对象键,则会添加相互作用,属性,要求和标题. |

### HalInteraction 对象

包括原始交互对象的现有属性。 它提供以下辅助功能:

| 名称 | 类型 | 说明 |
| :-- | :-- | :-- |
| `getRequiredProperties` | `()=>String[]` | 返回带有所需属性密钥的数组 。 取自相互作用的"schema.required"阵列. |
| `isPropertyRequired` | `(String)=>Bool` | 接收属性的密钥。 如果在交互的“ schema. required” 数组内存在, 返回真值 . |
| `getSchemaProperties` | `()=>Object[]` | 返回属性的原计划对象数组( 添加) `key`) (中文(简体) ). 从 `\schema.properties` 交互对象. |
| `getSchemaProperty` | `(String)=>Object` | 接收属性的密钥。 返回属性的策略对象( 添加) `key`如果在其中存在 `\schema.properties` 交互对象. |
| `hasProperty` | `(String)=>Bool` | 接收属性的密钥。 如果在 `\schema.properties` 交互对象. |

### HalProperty 对象

| 名称 | 类型 | 说明 |
| :-- | :-- | :-- |
| `isRequired` | `()=>Bool` | 如果财产存在于 `\_options.required` 阵列. |
| `existsInInteraction` | `(String)=>Bool` | 接收带有字符串的字符串 `rel` 互动。 如果属性存在于交互对象“schema.pritities”内,则返回真实性. |
| `getSchema` | `()=>Object` | 返回属性的策略对象( 添加) `key`如果在其中存在 `\_options.properties` 对象. |

## 哈尔森工厂

本单元的目的是便利查阅在API回复中返回的信息。 此工厂函数接受一个具有以下属性的物体作为参数:

| 名称 | 类型 | 说明 |
| :-- | :-- | :-- |
| `body` | `Object` | 消息正文是传送到一个 http 响应的数据字节 . |
| `headers` | `Object` | 包含 http 头条, 提供服务器信息, 以及进一步访问请求- URI 确定的资源 . |
| `status` | `Number` | 状态代码由服务器根据客户端向服务器提出的要求发布. 它包括来自IETF(RFCs)请求评论的代码. |

它回来了 [响应对象](https://npmcn.com/package/%40dxc-technology/halstack-client/#readme-halresponse-object)。 。 。 .

### 响应对象

| 名称 | 类型 | 说明 |
| :-- | :-- | :-- |
| `body` | `JSON Object` | 反应信息机构 |
| `headers` | `JSON Object` | Http 信头 |
| `status` | `Number` | Https 响应代码 |
| `type` | `String` | 反应格式。 实例:应用程序/JSON |
| `halResource` | `HalResource` | [HalResource 对象](https://npmcn.com/package/%40dxc-technology/halstack-client/#readme-halresource-object) 使用机构内提供的信息组成. |
| `containsHalResource` | `Bool` | 如果响应的内容是 HAL 资源, 则为真 . |

## HalApi呼叫器模块

此模块是 HTTP 客户端, 负责发送解析 `HalResponses`它输出以下功能:

| 名称 | 类型 | 说明 |
| :-- | :-- | :-- |
| `setGlobalHeaders` | `function` | 接收将用于所有使用此模块的 http 请求的信头对象. |
| `get` | `function:Promise(HalResponse)` | 接收 a `{ url, headers }` 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 . |
| `options` | `function:Promise(HalResponse)` | 接收 a `{ url, headers }` 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 . |
| `patch` | `function:Promise(HalResponse)` | 接收 a `{ url, body, headers }` 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 . |
| `post` | `function:Promise(HalResponse)` | 接收 a `{ url, body, headers }` 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 . |
| `put` | `function:Promise(HalResponse)` | 接收 a `{ url, body, headers }` 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 . |
| `del` | `function:Promise(HalResponse)` | 接收 a `{ url, headers }` 对象作为参数。 返回一个承诺,并将通过一个 `HalResponse` 对象为处理器. |

# 许可证

参见 Halstack 客户端许可证 [这里](https://npmcn.com/package/%40dxc-technology/halstack-client/LICENSE)

## 待执行

看我们的 [问题](https://github.com/dxc-technology/halstack-client/issues)

## 常见问题

### @dxc-technology/halstack-client 是什么？

DXC 技术 Halstack 客户端

### 如何安装 @dxc-technology/halstack-client？

在项目目录运行 npm install @dxc-technology/halstack-client，或使用 pnpm add / yarn add / bun add。

### @dxc-technology/halstack-client 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/dxc-technology\_\_halstack-client 是否存在。

### @dxc-technology/halstack-client 支持 ESM 还是 CommonJS？

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

### @dxc-technology/halstack-client 可以商用吗？

@dxc-technology/halstack-client 使用 Apache v2\.0 许可。声明的许可为 Apache v2\.0，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @dxc-technology/halstack-client 的下载量有多少？

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

### @dxc-technology/halstack-client 还在维护吗？

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

