请求的限制

请求的限制 Yandex Market API 对于卖家来说,它们分为以下几种类型:

  • 全局限制(对同时请求数量的限制);

  • 资源限制(长时间内对同一资源的请求数量的限制,例如,每天);

  • 功能限制(对单个请求中要发送或返回的数据量的限制)。

全球限制

它们会影响同时(并行)请求的数量。 最多允许同时发出四个请求。

该限制适用于特定实体,具体取决于 URL 请求:

  • 对于类似的查询 /campaigns/{campaignId}/... — 到商店(campaignId);
  • 对于类似的查询 /businesses/{businessId}/... — 到内阁(Businesssid);
  • 其他要求:
    • 登录时 Api-Key-令牌 — 到创建令牌的帐户(BusinessID);
    • 登录时 OAuth令牌 — 发给以其名义发出令牌的雇员(用户id).

如果超过限制,服务器将返回一个特殊的HTTP代码。 420 Enhance Your Calm 带有解释性信息:

Hit rate limit of 4 parallel requests for campaignId 12345

资源限制

它们会影响一次登录后长时间内对同一API资源的请求量。

对于不同的方法,限制适用于请求的数量或传输或返回的数据总量。 限制的具体类型及其含义在相应方法的页面上注明。

在对请求的每个响应中,服务器返回指示实体的资源限制状态的特殊HTTP标头:

  • 标题 X-RateLimit-Resource-Limit 包含限制的数值。

  • 标题 X-RateLimit-Resource-Until 包含限制适用的日期,格式为 RFC822 (例如, 星期四,2018年7月10日00:42:42格林尼治标准时间);

  • 标题 X-RateLimit-Resource-Remaining 包含超出限制之前剩余的对此资源的请求量的数值。

减少资源限制

请求的成本降低了资源限制。 成本取决于限制的类型:

  • 如果请求数量有限制 — 成本为1(每个请求减少一个限制);
  • 如果数据量有限制 — 成本等于请求或响应中集合的大小。

减少规则:

  • 使用成功响应(2xx),资源限制减少。
  • 在客户端错误的情况下(例如4xx 400 Bad Request404 Not Found)资源限制也降低了;
  • 如果市场出现错误(5xx,包括500),则不会减少资源限制。

如果超过限制,服务器将发出一个特殊的HTTP代码。 420 Enhance Your Calm 例如,带有解释性消息:

Hit rate limit of 10000 points per 1 day for resource /regions/{regionId}.json for userId 67890

功能限制

它们会影响每个请求为资源发送或返回的数据量。 每个资源的限制都是单独的,它们的值在方法本身的描述中指定。

此外,所有请求都有一个共同的限制:请求正文的最大大小为512KB。 如果卷较大,请将请求拆分为几个。

如果超过限制,服务器将发出一个特殊的HTTP代码。 400 Bad Request 有一个解释性的信息。