阿莫斯( Amos)
输入的节点客户端 阿莫斯付费 API 从 OpenAPI 光谱中生成 openapi-typescript 和动力 openapi-fetch。 。 。 .
文档 : 完全的 Amos API 参考生活于 docs.amos.com (英语)。这个软件包是该API的已键入的节点.js绑定.
安装
npm install @amos.com/node
快开始
import {
createPayApiClient,
AMOS_API_BASE_URL_PRODUCTION,
AMOS_API_VERSION,
} from "@amos.com/node";
const pay = createPayApiClient({
baseUrl: AMOS_API_BASE_URL_PRODUCTION,
headers: {
"X-Api-Key": process.env.AMOS_API_KEY!,
"X-Api-Version": AMOS_API_VERSION,
},
});
const { data, error } = await pay.POST("/customers", {
body: { customer: { email: "[email protected]" } },
});
if (error) {
console.error(error);
} else {
console.log(data);
}
沙盒模式
交换基准 URL 常数 :
import {
createPayApiClient,
AMOS_API_BASE_URL_SANDBOX,
AMOS_API_VERSION,
} from "@amos.com/node";
const pay = createPayApiClient({
baseUrl: AMOS_API_BASE_URL_SANDBOX,
headers: {
"X-Api-Key": process.env.AMOS_API_KEY!,
"X-Api-Version": AMOS_API_VERSION,
},
});
自定义基址或获取
createPayApiClient 接受其中任何一项 openapi-fetch是因为 ClientOptions,所以你可以指向代理或供应自己的 fetch数字 :
const pay = createPayApiClient({
baseUrl: "https://my-proxy.example.com",
fetch: customFetchImpl,
headers: {
"X-Api-Key": process.env.AMOS_API_KEY!,
"X-Api-Version": AMOS_API_VERSION,
"X-Trace-Id": "abc123",
},
});
中件( 如新鲜的一能键)
import type { Middleware } from "@amos.com/node";
const idempotencyKey: Middleware = {
async onRequest({ request }) {
if (request.method === "POST") {
request.headers.set("Idempotency-Key", crypto.randomUUID());
}
return request;
},
};
pay.use(idempotencyKey);
API 表面
import {
createPayApiClient,
AMOS_API_BASE_URL_PRODUCTION,
AMOS_API_BASE_URL_SANDBOX,
AMOS_API_VERSION,
} from "@amos.com/node";
import type { PayApiClient, ClientOptions, Middleware } from "@amos.com/node";
createPayApiClient(options)——返回已键入openapi-fetch客户端。 暴露满地openapi-fetch接口 :GET, (中文(简体) ),POST, (中文(简体) ),PUT, (中文(简体) ),DELETE, (中文(简体) ),OPTIONS, (中文(简体) ),HEAD, (中文(简体) ),PATCH, (中文(简体) ),TRACE, (中文(简体) ),use, (中文(简体) ),eject。 。 。 .AMOS_API_BASE_URL_PRODUCTION编号 :AMOS_API_BASE_URL_SANDBOX——两种环境的基础URL.AMOS_API_VERSION- 电线层X-Api-Version这个目标。 传之为道X-Api-Version每个请求的页眉( 作为默认在headers页:1.PayApiClient——返回的类型createPayApiClient。 。 。 .ClientOptions, (中文(简体) ),Middleware- 从openapi-fetch为方便.
类型
所有计划类型均从主条目再出口。 例如:
import type { components, paths, operations } from "@amos.com/node";
type Customer = components["schemas"]["Customer"];
版本
我们跟着 交换器 npm 软件包,附加一条规则: 主要版本跟踪线层 X-Api-Version 标题。 。 。 .
| npm 范围 | X-Api-Version 它的目标 |
|---|---|
@amos.com/[email protected] | 1 |
@amos.com/[email protected] | 2 (假说) |
如此颠倒 AMOS_API_VERSION 总是一个主要的发布, 消费者谁支持 @amos.com/node@^1 知道他们永远不会被透明地升级 到一个新的电线合同.
颠倒的心理规则: "会有一个程序 键入前一个 dist/index.d.ts 仍与新作相打字" 若无是道是道.
预1.0提醒. 当我们开始的时候
0.x, (中文(简体) ), 打破更改可以降落在任意0.x释放. 严格的SemVer(和上面的API-version-tracks-Major 规则)从我们剪接的那天开始1.0.0。精确地说0.x.y如果你今天需要稳定的话.