@dxc-technology/halstack-client

中文文档
1.6.8发布于 2026/09/18Apache v2.0ESM + CJS近 30 天下载 4699

DXC 技术 Halstack 客户端

中文使用文档
文档目录11 节
  1. 安装
  2. 用于节点.js
  3. 在浏览器中使用
  4. 哈尔资源厂
  5. HalResource 对象
  6. HalInteraction 对象
  7. HalProperty 对象
  8. 哈尔森工厂
  9. 响应对象
  10. HalApi呼叫器模块
  11. 待执行

JavaScript 的哈尔斯塔克客户端

用于JavaScript的Halstack客户端使开发者能够以声明的方式轻松地与基于超媒体的API合作. 它提供一套功能,以方便超媒体资源之间的导航,并基于 哈尔 财务报告和审定财务报表 JSON 超计划 规格草案,以及 DXC API 准则 和HAL扩展.

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

安装

npm install @dxc-technology/halstack-client

用于节点.js

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

在浏览器中使用

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

哈尔资源厂

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

它返回一个 HalResource 对象,封装最初的 HAL 资源代表并包含一组功能,这些功能将允许您以声明的方式从资源中获取数据,而无需充分了解 HAL 资源代表结构的细节.

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

HalResource 对象

名称类型说明
resourceRepresentationObject整个资源代表.
getTitle()=>String返回资源标题。 从 \_options.title。 。 。 .
getInteractions()=>HalInteraction[]返回数组 哈尔互动 对象。 从 \_options.links 阵列.
getInteraction(String)=>HalInteraction接收带有字符串的字符串 rel 互动。 返回 哈尔互动 对象.
getItems()=>Object[]返回原项目链接对象的数组。 从 \_links.item 阵列.
getItem(Number)=>Object接收项目索引。 返回项目对象.
getLinks()=>Object[]返回原始链接对象的数组(添加 rel,忽略 item 链接。 从 \_links 对象.
getLink(String)=>Object接收带有字符串的字符串 rel 链接。 返回链接对象(添加 rel) (中文(简体) ).
getProperties()=>Object[]返回数组 Hal 财产 对象。 取自资源根级属性 .
getProperty(String)=>Object接收带有属性密钥的字符串。 返回 Hal 财产 对象.
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回复中返回的信息。 此工厂函数接受一个具有以下属性的物体作为参数:

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

它回来了 响应对象。 。 。 .

响应对象

名称类型说明
bodyJSON Object反应信息机构
headersJSON ObjectHttp 信头
statusNumberHttps 响应代码
typeString反应格式。 实例:应用程序/JSON
halResourceHalResourceHalResource 对象 使用机构内提供的信息组成.
containsHalResourceBool如果响应的内容是 HAL 资源, 则为真 .

HalApi呼叫器模块

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

名称类型说明
setGlobalHeadersfunction接收将用于所有使用此模块的 http 请求的信头对象.
getfunction:Promise(HalResponse)接收 a { url, headers } 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 .
optionsfunction:Promise(HalResponse)接收 a { url, headers } 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 .
patchfunction:Promise(HalResponse)接收 a { url, body, headers } 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 .
postfunction:Promise(HalResponse)接收 a { url, body, headers } 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 .
putfunction:Promise(HalResponse)接收 a { url, body, headers } 作为参数的对象。 返回承诺,并将传递一个 HalResponse 对象给处理者 .
delfunction:Promise(HalResponse)接收 a { url, headers } 对象作为参数。 返回一个承诺,并将通过一个 HalResponse 对象为处理器.

许可证

参见 Halstack 客户端许可证 这里

待执行

看我们的 问题

版本与发布记录

@dxc-technology/halstack-client 共发布 209 个版本,首次发布于 2019/06/26;过去 12 个月发布了 19 个版本。

版本发布日期距今
1.6.8latest2026/09/181 个月前
0.0.0-73635e6next2026/09/161 个月前
1.6.72026/09/102 个月前
0.0.0-5e7dbf22026/09/092 个月前
0.0.0-b22d3432026/09/042 个月前
0.0.0-b1cb3bb2026/09/042 个月前

其他发布通道:beta → 1.1.3-beta.12,alpha → 1.1.5-alpha.20200707.1,next → 0.0.0-73635e6。

关于 @dxc-technology/halstack-client 的常见问题

@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 和提交记录判断。