@faiber/faiber-模块
产品、变体、手推车、订单、库存、编辑职位和网页、分类学、标准经济、一般评论和反应、准入规则、定价和样本.
安装
npm install @faiber/faiber-modules
配置
import { FaiberClient, MemoryTokenProvider } from "@faiber/sdk-core";
import { ModulesApi } from "@faiber/faiber-modules";
const tokens = new MemoryTokenProvider();
const client = new FaiberClient("modules", {
domains: { modules: process.env.FAIBER_MODULES_URL! },
tokenProvider: tokens,
axios: { timeout: 15_000, withCredentials: true },
});
const api = new ModulesApi(client);
const products = await api.products.list({
page_number: 1,
page_size: 24,
});
const posts = await api.posts.list();
完全能力
该软件包从内容和商业模块服务中披露了179项注册业务。 通用工作流程有简洁的方法 api;每个已注册后端路由在 api.operations。生成的操作输入、查询、响应、路径、动词和许可合同从 operations.types。 。 。 .
| 区域 | 业务 | HTTP 方法 |
|---|---|---|
access | 页:1 | DELETE, (中文(简体) ), GET, (中文(简体) ), POST, (中文(简体) ), PUT |
audit-log | 1个 | GET |
author | 6个 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
blog | 6个 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
cart | 2个 | GET, (中文(简体) ), PUT |
category | 第9条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
comment | 第8条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
content | 第9条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
content-transfer | 页:1 | GET, (中文(简体) ), PUT |
integration | 1个 | GET |
inventory | 第12条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
management-api | 页:1 | GET, (中文(简体) ), POST, (中文(简体) ), PUT |
media | 3个 | GET, (中文(简体) ), POST |
order | 第12条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
podcast | 第8条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST |
product | 第13条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
reaction | 3个 | DELETE, (中文(简体) ), GET, (中文(简体) ), POST |
request | 第13条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
router | 6个 | GET, (中文(简体) ), POST |
search | 1个 | GET |
seo-content | 第9条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
service-pricing | 6个 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
session | 1个 | GET |
stock-movement | 2个 | GET, (中文(简体) ), POST |
tag | 第9条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
user-sample | 页:1 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST, (中文(简体) ), PUT |
分类、标签、评论、反应、标准业务标准、内容附件、定价、访问和商业业务 api.operations社区供养和社会职位由下列机构提供: @faiber/faiber-social。 。 。 .
认证和授权
使用一个 TokenProvider 以转发已签名用户的 Bearer 令牌,或启用 withCredentials 用于安全的 Http 只有饼干会话。 每个行动的JSDoc都包含从服务路线卫士复制的许可要求. SDK不嵌入 API 密钥,证书,本地主机 URL,沙盒主机,或生产主机.
投入、询问、答复和运输
所有方法都返回完整的Axios响应,包括状态,头,以及请求ID. 请求机构和查询对象被命名为导出接口. 模块页化使用 page_number 财务报告和审定财务报表 page_size,通常默认为1和10,而尺寸被夹到1-100。 收藏信封保留诸如 products, (中文(简体) ), orders, (中文(简体) ), posts 财务报告和审定财务报表 stock_movements。串行可选字段无效。 标准 Axios 请求选项、信头、超时、适配器、拦截器和 AbortSignal 取消被支持为最后参数.
一般性的REST资源得到能力保障。 调用未注册的遗留方法 UnsupportedOperationError 在发送请求之前, 而不是生成后端 405。 。 。 .
错误和取消
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服务时.
存储前期结帐和公共表格
const quote = await api.operations.orderQuotePost({
id: checkoutId,
items: [{ variant_id: variantId, quantity: 1 }],
shipping: { fullName: "Test Buyer", phone: "+989000000000", city: "Rasht", address: "Delivery address", postalCode: "1234567890" },
}, { headers: { Origin: websiteOrigin } });
await api.operations.orderPayPost(checkoutId, { max_total: quote.data.total }, { headers: { Origin: websiteOrigin } });
这些自定义操作的使用 /api/v1/shop/checkout/* 返回原始数据 ShopCheckout 记录。 发运使用骆驼Case;取出量为整数IRR. 重试时重新使用检出 UUID 并保留已配置的网站 Origin, 用于引用, 支付和取消 。 服务器拥有价格,拒绝 Stale 接受的总数.
operations.routerListGet({page:1}) 列出已公布的库存前期产品,每页100份 hasMore。 。 。 . requestSubmitPost 保留行政请求- 日志行为; 单独的公共形式操作提交 idempotent submission_id 改为 website_contact, (中文(简体) ), website_newsletter,或 website_waitlist. 公开表格验证电子邮件和字段界限,拒绝蜜壶内容,在费率有限时返回429个。 需要网站默认提供 modules:request:create。 。 。 .
Wildcard文件路径使用原始的非空块并保存目录分隔符. 不要预编码路径或包含点倒转, % 逃出,查询/分解 语法或回鞭; 无效路径在传输前会本地失效 .
主机目录搜索
const categories = await api.categories.list({ search: "Hardware", page_number: 1, page_size: 20 });
const tags = await api.tags.list({ search: "release" });
const seo = await api.seo.list({ search: "/products/" });
console.log(categories.data.data.search, categories.data.data.total_items);
同一查询和答复可上网查询 api.operations.categoryListCategoriesGet, (中文(简体) ),
tagListTagsGet,以及 seoContentListSeoContentsGet类别和标记与名称相符;
SEO匹配标题或 URL 。 匹配是一个对大小写不敏感的子字符串 : %, (中文(简体) ), _,以及
倒斜为普通字符。 服务器会修剪白空间, 并响应已规范的
搜索,或 null 用于空白/输入搜索。 输入超过128个Unicode字符或包含
NUL还回HTTP 400. 空白/ 输入的搜索保留了现有的目录和计数 。 页面开始
1; 页面大小被夹到1–100 (默认为 10), 由 UUID 升序命令 。 删除行
(d) 搜索没有增加身份、租户或许可语义。 完全Axios状态,
保留标题、错误、取消和现有配置的授权.
编辑管理、媒体和代理提议
已发布的内容查找返回一个原始内容 ContentDocument管理内容/设置的更新、公布和恢复 If-Match 与当前 ETag; 方便方法明确接受 ETag。 缺少先决条件 返回 428 和 steal Reversion 412. 内容需读取/写入 content:read编号 :content:write,需要发布 content:publish设置 settings:read编号 :settings:write。 。 。 .
runAgent 返回 SSE 文本并接受稳定的一等键;生成的操作接受密钥在 options.headers。需要代理模型/运行 agent:run,提案为: agent:audit,以及批准/拒绝 agent:apply (风险批准也要求 agent:approve-risky) (中文(简体) ). 保存出错事件以及 HTTP 失败 。 媒体下载返回字节; 上传使用多段 kind 财务报告和审定财务报表 file,由服务强制执行图像/视频限制.
SKU,推车项目,编辑文档,SEO部分,审计元数据,请求格式数据和代理上下文/diffs 仍然是任意的JSON,因为后端存储 serde_json::Value。它们的周围记录和收集信封是混凝土输出类型。 命令要求经认证的拥有者或管理者的角色;服务从活跃的变体计算出价格并强制执行股票/付款过渡.