SelSup Developers

整合基本面 · 导游

开始

验证,第一次请求,本地错误,页面化,

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'

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. 1

    单独阅读和写作

    首先验证GET请求. 使用测试实体和明确的确认步骤来突变.

  2. 2

    配置时间切除和重试

    只有网络故障和安全操作. POST 没有自己的无权密钥可以创建复制.

  3. 3

    限制同步性

    尊重终点限制,使用一个排列,

  4. 4

    调整结果

    在大量同步后,比较数量和样本识别符,然后将分歧移到单独的队列中.

!
现场账户数据

试试,它将请求发送到代币所有者的账户. 文件添加了写字的确认,