快速上手

从一把密钥到一条收货记录和一条集合记录,五分钟,用 curl 完成。

你只需要一样东西:一把合作方密钥。它已经知道自己被授予了哪些餐厅,API 会告诉你。

1. 拿到一把密钥

发邮件到 contact@backresto.com, 写上你的公司、你需要的餐厅和你想要的权限范围。我们与餐厅确认之后,把密钥发给你 指定的技术联系人。获取密钥 是完整的清单——一次把它写全,是让这趟 往返只花一封邮件而不是四封的原因。

一把密钥长这样:

brp_hV8kZ2pQ.tW3nR7yL9cF1sB4xJ6mA8dK0gN5vE2uP7hQ3rT1zY6i

点号前的那一半是公开前缀——它在那个页面的密钥列表里和支持沟通中标识这把密钥, 写下来是安全的。点号后的那一半是密钥串,它只在那一个屏幕上出现过,别处都没有。

2. 存好它

把整个值作为一个字符串放进你的密钥管理器,然后删掉它到达时的那封邮件。绝不要放进 代码仓库,绝不要放进 URL,绝不要放进日志行。我们只保存密钥串的摘要,所以密钥一旦 丢失,就意味着一次吊销加一把新密钥——写信给我们,两件事都在当天完成。

export BACKRESTO_PARTNER_API_KEY='brp_…'

3. 找到你的餐厅

问这把密钥它能触及哪些餐厅,以及各自带有哪些权限范围:

curl "https://api.backresto.com/v1/restaurants" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"
{
  "data": [
    {
      "restaurantId": "restaurant-1",
      "scopes": ["deliveries:read", "delivery-images:read"]
    }
  ]
}

大多数密钥只触及一家餐厅。把它的标识符留着,下面的调用会用到:

export RESTAURANT_ID='restaurant-1'

4. 列出一周的收货记录

列表端点需要一个明确的时间区间,以字符串表示的 Unix 毫秒时间戳。这是整个 API 通用的约定——绝不是秒,也绝不是 ISO 8601。

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
  --get \
  --data-urlencode "from=1787846400000" \
  --data-urlencode "to=1788451200000" \
  --data-urlencode "limit=25"
{
  "data": [
    {
      "id": "8f2c1b04-0d5a-4b7e-9f31-6ad2c0e77a51",
      "restaurantId": "restaurant-1",
      "occurredAt": "1787932800000",
      "isCompliant": false,
      "supplier": { "id": "supplier-7", "name": "Metro Nord" },
      "temperatureRecords": [
        { "product": "Poulet fermier", "lotNumber": "L2291", "unit": "C", "value": 6.4 }
      ],
      "nonComplianceReasons": ["Température trop élevée"],
      "correctiveActions": ["Produit refusé"],
      "commentary": null,
      "imageCount": 2
    }
  ],
  "nextCursor": null
}

5. 取一条收货记录,以及它的照片

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries/$DELIVERY_ID" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries/$DELIVERY_ID/images" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

照片端点在 deliveries:read 之外还需要 delivery-images:read 权限范围。如果你的 密钥只有前者,收货记录会正常返回,而照片返回 403——这正是授权在起作用,解决办法 是让客户签发一把两个权限范围都有的密钥。

6. 读一读其他集合中的一个

不是收货记录的一切——温度、冷却、清洁、标签——都是一个集合。 先问这把密钥它打开了哪些:

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

一个空的 data 意味着这把密钥还没有任何集合授权,而这正是一把只为收货记录签发的 密钥的常态——去申请你需要的那些。否则,就走一个看看:

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections/temperature-records/records" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
  --get --data-urlencode "limit=100"
{
  "data": [
    {
      "id": "3a71f0c8-9d24-4f11-bb0e-77c2e5a41d93",
      "restaurantId": "restaurant-1",
      "collection": "temperature-records",
      "deleted": false,
      "capturedAt": "1788961200000",
      "receivedAt": "1788961318000",
      "sequence": "4192",
      "data": {
        "timestamp": "1788961200000",
        "value": 3.2,
        "unit": "CELSIUS",
        "shift": "MORNING",
        "equipmentId": "equipment-12"
      }
    }
  ],
  "nextCursor": null
}

这里没有时间区间:你走完这个集合,并留着 id,好在下一次遍历时对账。

7. 处理你真正会遇到的那两种失败

404——这家餐厅不在你的密钥上,或者这条收货记录不存在。两者被有意做成无法 区分:API 不会向一个看不到某家餐厅的调用方确认它存在。

403——这家餐厅在你的密钥上,但这个端点需要的那个权限范围不在。

每一个错误都是一份 problem 文档,绝不会是 HTML 页面,并且带有一个 requestId,写信给我们时值得把它附上。

接下来看什么

  • 获取密钥——申请清单,以及日后如何变更一把密钥。
  • 认证——权限范围、轮换,一把密钥能做什么、不能做什么。
  • 分页——游标,以及如何走完一段很长的区间。
  • 收货记录——每个字段,以及它在后厨现场意味着什么。
  • 集合与记录——另外那二十四种记录类型,以及它们共用的那个信封。
  • MCP——在 AI 客户端里用上同一份数据,大约三分钟。

最后更新于 2026-09-19。