Fotografie delle consegne

Le immagini scattate al ricevimento, servite come URL firmati che scadono in quindici minuti.

Il personale fotografa ciò che riceve — un'etichetta, un pallet danneggiato, una sonda accostata a un display. Quelle immagini sono la prova dietro isCompliant, e questo endpoint gliele consegna.

Richiede entrambi gli ambiti deliveries:read e delivery-images:read sul ristorante indicato nel percorso. Una chiave che ha solo il primo risponde 403 qui, mentre la consegna stessa risponde normalmente.

Elencare le fotografie di una consegna

GET /v1/restaurants/{restaurantId}/deliveries/{deliveryId}/images
{
  "data": [
    {
      "id": "b4d81f0ac2e7",
      "contentType": "image/jpeg",
      "byteLength": 902450,
      "uploadedAt": "1787932860000",
      "url": "https://…/restaurants/restaurant-1/deliveries/8f2c…/b4d81f0ac2e7.jpg?X-Amz-Signature=…",
      "urlExpiresAt": "1787933760000"
    }
  ]
}

Non c'è paginazione: una consegna contiene al massimo venti fotografie, e tornano tutte in una sola risposta.

CampoTipoSignificato
idstringaIdentificatore stabile dell'immagine all'interno della consegna.
contentTypestringaimage/jpeg, image/png o image/webp. Nient'altro raggiunge questa API.
byteLengthinteroDimensione esatta dell'oggetto, fino a 10 MB.
uploadedAtstringaQuando il caricamento dell'immagine è terminato, millisecondi dall'epoch come stringa.
urlstringaUn URL firmato e diretto ai byte.
urlExpiresAtstringaQuando quell'URL smette di funzionare, millisecondi dall'epoch come stringa.

Gli URL sono di breve durata di proposito

url è un collegamento pre-firmato valido per quindici minuti, e tutti gli URL di una stessa risposta condividono la stessa scadenza, così può trattare la pagina come un'unità. Porta con sé la propria autorizzazione, quindi scaricare i byte non richiede alcun header Authorization — il che significa anche che il collegamento è di per sé una credenziale al portatore.

Questo determina come dovrebbe usarlo:

  • Scarichi adesso, oppure scarichi di nuovo più tardi. Scarichi i byte mentre la risposta è fresca; non memorizzi l'URL per seguirlo domani. Chiami di nuovo l'endpoint per ottenere collegamenti nuovi — costa poco, e ricontrolla la concessione, che è il punto.
  • Non metta mai l'URL dove sopravvive al proprio scopo. Non in una email, non in un ticket, non in una cache lato client con un TTL lungo. Per quindici minuti chiunque lo possieda può leggere quell'immagine.
  • Conservi i byte, non il collegamento, se le serve l'immagine nel suo prodotto. Tenga accanto l'id così può capire se ce l'ha già.

Compaiono solo le immagini caricate

Una fotografia viene registrata quando il dispositivo inizia il caricamento e diventa visibile qui solo una volta che i byte sono effettivamente arrivati e sono stati verificati. Un'immagine ancora in transito — un telefono che ha lasciato l'edificio a metà caricamento — è assente anziché rotta.

È per questo che imageCount sulla consegna può brevemente superare quello che restituisce questo endpoint. Si fidi di questo endpoint per ciò che esiste adesso, e rilegga la consegna più tardi se un conteggio le interessa.

Scaricarle

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries/$DELIVERY_ID/images" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
  | jq -r '.data[] | "\(.id) \(.url)"' \
  | while read -r id url; do
      curl -sS "$url" -o "$id.jpg"
    done

L'header Authorization sulla prima chiamata, e nessuno sulla seconda: è la firma nell'URL ad autorizzare il download.

Ultimo aggiornamento 2026-09-09.