REVO API · Noutăți
Noutăți în API
Ce s-a schimbat în API-ul REVO, pe date. Versiunea 1 doar adaugă câmpuri, parametri și endpoint-uri. Nimic de aici nu strică o integrare existentă. Dacă vreodată trebuie o schimbare incompatibilă, ea vine ca /v2, cu cel puțin 6 luni în care merg ambele versiuni.
-
v1.1: chei API pentru date (meniu, locații, vânzări, stocuri)
- Scopes pe chei:
locations:read,menu:read,sales:read,stock:read,orders:write. Cheile existente au primitorders:write, adică exact ce puteau face până acum. Un apel în afara scope-ului răspunde403 insufficient_scope. - Endpoint-uri noi:
GET /locations/{id},/categories,/products,/products/{id},/allergens,/sales/daily,/sales/products,/sales/orders,/sales/orders/{id},/ingredients,/ingredients/{id}. - Liste cu cursor (
next_cursor,has_more,limitpână la 200), sincronizare cuupdated_sinceși rânduri șterse marcate (deleted: true). - La sincronizare (
updated_sincesauinclude_deleted), filtrele care se schimbă odată cu datele (availableșicategory_idla produse,below_minla stocuri) răspund422: un produs pus pe 86 n-ar mai ajunge niciodată în copia ta. Sincronizezi tot și filtrezi la tine. - Un cursor modificat sau o dată imposibilă (
updated_since,from,to) răspunde422, niciodată500. La felGET /orders?updated_since=de la comenzi, cu un an ca0000. GET /mearată acumscopes,all_locationsșirate_limits.- Cheile pentru date (fără
orders:write) merg și când restaurantul are comenzile online oprite. - Regenerarea unei chei poate păstra cheia veche încă 24 de ore, ca un site live să nu se oprească până pui cheia nouă.
- Limite noi: 600 de cereri pe minut pentru toate cheile unui restaurant; 30 pe minut pentru
/sales/dailyși/sales/products; după 30 de cereri cu o cheie greșită într-un minut, adresa de pe care vin primește429. - Pe rutele de date,
display_messagee scris neutru („Cheia nu are acces la această locație.”); rutele de comenzi păstrează textele de până acum. - Un browser care deschide referința interactivă de pe revoapp.ro poate citi antetele
X-RateLimit-*,Retry-After,ETagșiIdempotent-Replayed. - Specificația OpenAPI 3.1 e publică: openapi.yaml · openapi.json, cu referința interactivă.
- Scopes pe chei:
-
v1.0: Comenzi online
- API-ul de comenzi pentru site-ul și aplicația restaurantului:
GET /me,/locations,/locations/{id}/menu(cuETag),POST /orders(idempotent dupăexternal_id, prețuri calculate de REVO,expected_total),GET /orders,GET /orders/{id},POST /orders/{id}/cancel,POST /webhooks/test. - Webhook-uri semnate pentru statusuri:
order.accepted,order.rejected,order.ready,order.completed,order.cancelled,ping. - Chei de test (
rvo_test_…): comenzile de test nu ajung la bucătărie, la casa de marcat, în stocuri sau în rapoarte.
- API-ul de comenzi pentru site-ul și aplicația restaurantului: