先加载国家列表
在设置页面加载时调用 `holidays-countries`,并把返回的 `countryCode` 代码保存在你自己的存储中。用这些代码在表单里校验 `body.country`,避免用户选择不受支持的国家。
检查截止日期
确认发货或付款日期之前,把它作为 `body.date` 发送给 `holidays-is-workday`。如果结果不是工作日,响应中的 `reasons` 可以在推荐下一个日期之前展示给用户。
跨地区计算交付周期
估算交付周期时,用 `body.start` 和 `body.end` 调用 `holidays-workday-count`。当地区性假日(例如州一级的假日)有影响时加上 `body.subdivision`,并让同一计划的所有请求使用相同的地区代码。
该数据特有的陷阱
`body.types` 只发送一个假日类型,写法须与列出的一致(例如 `Bank`),契约不接受逗号分隔的列表或其他写法。如果省略该字段,只有 `Public` 算作休息日,因此不在周末、且仅属于银行假日或学校假日的日期不算作休息日。请使用文档中的字段名而不是别名,年份保持在 1900 到 2200 之间,并以 YYYY-MM-DD 字符串发送日期,因为契约本身不检查日期格式。每次 `holidays-workday-count` 的区间请控制在约 10 年以内。`body.subdivision`、`body.weekend` 和 `body.today` 的无效值不会被拒绝,而是被忽略并改用默认值(全国规则、默认周末和当前 UTC 日期),因此写错的地区代码会得到全国范围的结果,而不是报错。请在自己的代码中先校验这些取值,例如对照你维护的 ISO-3166-2 代码列表和 `Sat,Sun` 这类星期名称。
[
{
"body": {
"country": "GB",
"date": "2027-12-27",
"subdivision": "GB-SCT"
}
},
{
"body": {
"country": "GB",
"start": "2027-12-01",
"end": "2027-12-31",
"subdivision": "GB-SCT"
}
}
]服务端请求模板
以下服务端模板以此 API 的第一个操作为例,演示认证与请求标识。请根据场景选择操作,并在 API 页面查看其当前可用状态与价格。超时后,使用同一个 Idempotency-Key 重发未改变的请求。
网关请求始终使用 POST。
使用 JSON 对象,按文档将参数放入 path、query、headers 和 body,省略未使用的位置。input.headers 是受结构校验的数据,不是浏览器请求头。请勿在此填写凭证。按文档保留 body 的数组、标量或 null;省略与 null 含义不同。
# Server-side only. Set ATLAS_API_KEY in your secret manager.
# Set ATLAS_API_ORIGIN to your configured deployment origin.
# Every gateway operation is called with POST.
# Only operations shown as enabled on the API page can be called.
# Generate once per intent; retain the same value on status checks.
REQUEST_ID="$(uuidgen)"
curl --request POST 'https://apigate.vercel.app/api/v1/holidays/holidays-countries' \
--header "Content-Type: application/json" \
--header "x-api-key: $ATLAS_API_KEY" \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"body":{}}'接入检查清单
- API 密钥保存在服务端密钥管理器中,从不发送到浏览器。
- 每个请求携带自己的 Idempotency-Key,并保留到请求得到最终结果为止。
- 集成读取 ok 与 error.code,并按错误码表处理每个错误码。
- 使用原标识检查结果不确定的 POST,绝不盲目更换标识重试。
- 已在 API 页面查看该操作的当前可用状态与价格。