返回博客

API Key 怎么管:分环境、限速与额度自查

Rnote API 团队 · · 4 次阅读 · English
小红书数据 API Key 限速 最佳实践

只用一把 Key 跑所有环境,是团队接入 API 后最常见、也最贵的一个习惯。测试脚本一次死循环,把生产的额度和限速一起吃光;出了问题查日志,又分不清哪次调用是谁发的。

这篇讲怎么在 Rnote API 后台把 Key 拆开管,以及限速到底怎么算。

一个环境一把 Key

后台 API Key 管理可以建多把 Key,每把独立命名、独立限速、可以单独停用。推荐的最小拆法:

  • prod — 生产服务专用,限速给足。
  • staging — 预发布,限速给一半。
  • dev-<姓名> — 每个开发一把,限速给最低。

这样拆的好处在出事那天才体现:某个 Key 被误用或泄漏,你可以只停用它,其余环境照常跑,不用改所有服务的配置。日志里也能一眼看出是哪一路发的请求。

限速是按 Key 算的

每把 Key 有自己的每分钟请求上限,互不影响——这正是拆 Key 的意义。超限时接口返回 429,不扣费。

处理 429 的正确姿势是指数退避,而不是原地重试:

import time, requests

def call(url, params, tries=5):
    headers = {"X-API-Key": "YOUR_API_KEY"}
    delay = 1.0
    for i in range(tries):
        r = requests.get(url, headers=headers, params=params, timeout=30)
        if r.status_code != 429:
            return r
        time.sleep(delay)
        delay *= 2          # 1s → 2s → 4s → 8s
    raise RuntimeError("持续限速,检查并发数是否超过这把 Key 的额度")

固定间隔的重试在并发场景下会把所有 worker 撞在同一个时间点上,退避才能把它们错开。

余额与用量自查

  • 余额不足返回 402,请求不会被执行,也不产生费用。生产服务建议对 402 单独告警——它不是代码问题,是钱的问题,重试多少次都没用。
  • 后台计费页可以按日期和接口拆开看扣了多少、哪个接口最费钱,也能导出表格对账。

三个能省钱的习惯

  1. 失败不扣费,但不代表可以随便打——把参数校验放在调用前,别让明显错误的请求去撞接口。
  2. 能批量的别单条循环——同一批笔记用一次搜索取回,比逐条详情便宜得多。
  3. 给开发环境单独的低限速 Key——限速本身就是一层保险丝,比事后看账单强。

开始使用

免费注册后即可在后台建 Key。接口清单见文档,各接口价格见定价。想看完整的接入最佳实践,可以读《小红书 API 最佳实践:限速、重试与配额》