整合基本面 · 导游
开始
验证,第一次请求,本地错误,页面化,
4 部分开发人员指南
开始使用专用代币和读取操作. 只有在error处理和重新尝试行为后才能添加突变.
后台开发人员和集成商01
认证和代币存储
直接在 Authorization 标题中发送 API 代币,没有 Bearer 预写.
您可以取消一个连接,而不打断其他连接.
存储代币在服务器侧的秘密. 永远不要在浏览器 JavaScript,移动应用程序,URL,日志或分析中运送.
!
这不是OAuth
不要添加Bearer或Basic.Authorization值是SelSup代币本身.
第一个请求 · cURL
curl --request GET 'https://api.selsup.ru/api/brand/find?limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
相关的API终端点
GET/api/brand/find安全测试要求
02
错误和消息位置
分为稳定的 error 字段,仅用于人类可读输出.
应用程序 error 通常包含 error, localMessage和 params. 服务器使用拥有代币的用户的lang字段翻译 XPRO TECTED4X.
文档语言和Accept-Language不会改变error本地.永远不要将localMessage在代码中比较,也不会保留它作为机器状态.
i
诊断背景
记录HTTP状态,error,params,请求时间和相关身份证.永远不要记录代币或个人数据.
申请error合同 · JSON
{
"error": "brand_already_exists",
"localMessage": "Brand Base already exists",
"params": {
"name": "Base"
}
}
03
页面化大型收藏
使用稳定排序,停止当 hasNextPage 错误或返回页面比限制短.
发送在第一个请求时只需要总数.
数据可以在页面之间发生变化. 为了重复同步,按不可变的标识符进行排序,并在单独的增量流中进行变化
页面循环 · JavaScript
let page = 1;
let hasNextPage = true;
while (hasNextPage) {
const url = new URL('https://api.selsup.ru/api/brand/find');
url.searchParams.set('limit', '500');
url.searchParams.set('page', String(page));
url.searchParams.set('sortBy', 'BRANDID');
url.searchParams.set('ascending', 'true');
const response = await fetch(url, {
headers: { Authorization: process.env.SELSUP_API_TOKEN }
});
if (!response.ok) throw await response.json();
const result = await response.json();
await savePage(result.rows);
hasNextPage = result.hasNextPage;
page += 1;
}
04
生产检查清单
- 1
单独阅读和写作
首先验证GET请求. 使用测试实体和明确的确认步骤来突变.
- 2
配置时间切除和重试
只有网络故障和安全操作. POST 没有自己的无权密钥可以创建复制.
- 3
限制同步性
尊重终点限制,使用一个排列,
- 4
调整结果
在大量同步后,比较数量和样本识别符,然后将分歧移到单独的队列中.
!
现场账户数据
试试,它将请求发送到代币所有者的账户. 文件添加了写字的确认,