Node.js SDK 接入
框架内置 OcpsClient(shared/sdk.js),自动完成签名、Bearer、幂等、错误解析。生产网关:https://api.ocps.cc。
初始化
const { OcpsClient } = require('ocps-sdk');
const client = new OcpsClient({
baseUrl: 'https://api.ocps.cc',
ak: process.env.OCPS_AK,
sk: process.env.OCPS_SK,
appid: process.env.OCPS_APPID,
});
常用方法
// GET
await client.get('/content/v1/contents', { status: 'published', page_size: 10 });
// POST(写操作自动带幂等)
await client.post('/content/v1/contents', {
type_code: 'blog',
title: '你好,OCPS',
body_json: { blocks: [...] },
status: 'draft',
});
// PATCH(乐观锁)
await client.patch('/content/v1/contents/' + id, { title: '新标题', version: 3 });
// DELETE
await client.delete('/content/v1/contents/' + id);
用户级令牌
// 登录拿 Bearer
const { access_token } = await client.post('/auth/v1/auth/token', {
username: 'user1', password: '***', grant_type: 'password',
});
// 代表用户请求
const userClient = new OcpsClient({ baseUrl, ak, sk, appid, token: access_token });
const me = await userClient.get('/user/v1/users/me');
错误处理
try {
await client.get('/content/v1/contents/not-exist');
} catch (e) {
console.log(e.code); // 如 CONTENT_NOT_FOUND
console.log(e.message);
console.log(e.status); // HTTP 状态码
}
直接手写签名的场景
小程序 / App 等环境不方便引入完整 SDK 时,可只实现签名函数(见 API 签名与鉴权),其余用原生 fetch。