Documentazione

Consulta la documentazione generale sull'integrazione con le nostre applicazioni e le pagine specifiche relative alle API.

Limiti e quote delle richieste API


Per mantenere prestazioni ottimali e garantire che i servizi della piattaforma siano disponibili per tutti i nostri clienti, adottiamo un sistema di bilanciamento dei carichi imponendo due tipi di limiti:

  • limiti al numero di richieste API simultanee (non negoziabile, ulteriori informazioni qui) per applicazione, e unità di tempo
  • limiti al numero di richieste settimanali per tenant (per tenant si intende il titolare di una licenza di utilizzo dei servizi API)

Quando si supera uno dei limiti fissati per le chiamate, viene restituito un errore con il codice di stato HTTP 429, contenente l'indicazione di quale limite è stato superato.

Ogni richiesta verso i servizi API dovrà contenere, nelle intestazioni HTTP, un record con la chiave di autorizzazione necessaria per individuare il tenant e i limiti previsti dalla propria licenza.

Esempio
GET /api/configurazioni HTTP/1.1
Host: superbill.datev.it
Accept: application/json
Content-Type: application/json
Authorization: Bearer ZXbHuLauu......9aNfYh3dcA
Authorization-Key: yHc0BdijjA0KbVR9pjyu
Cookie: ASP.NET_SessionId=riygfhahcnxf32qaihcyycfr

Per creare app che non raggiungono il limite al numero di richieste, utilizza queste linee guida:

  • Se raggiungi i limiti durante l'esecuzione dei test, utilizza più tenant per simulare uno scenario reale.
  • Quando esegui il polling per ottenere gli aggiornamenti di una risorsa, non superare una richiesta al minuto (60 richieste all'ora).
  • Per evitare di effettuare più richieste, le risorse statiche, come le rappresentazioni di dati aggregati e dashboard possono essere mantenuti nella cache.
  • Ogni sviluppatore di un team può configurare 2 app connesse: una per i test automatizzati e l'altra per i test manuali e lo sviluppo. Non condividere app connesse con altri sviluppatori.
  • Utilizza un'app connessa univoca per l'ambiente di produzione.
  • Non condividere le app connesse tra le applicazioni.
Informazioni sui limiti

In ogni risposta dell'API viene aggiunta una intestazione HTTP personalizzata che permette di monitorare i limiti e il numero di chiamate conteggiate.

Nome campo
DK-Limit-Info

Valore del campo
api-usage: specifica l'utilizzo dell'API per l'organizzazione rispetto alla quale è stata effettuata la chiamata. Il primo numero è il numero di chiamate API utilizzate nella settimana e il secondo numero è il limite API per l'organizzazione.

Esempio
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
DK-Limit-Info: api-usage=12/100000
Date: Tue, 15 Mar 2022 11:21:34 GMT
Content-Length: 7159
Limiti non negoziabili

I limiti al numero di richieste simultanee sono necessari per preservare un servizio ottimale per tutti i nostri clienti. Viene applicato un blocco automatico a partire dall'unità di tempo più piccola e il relativo sblocco avviene automaticamente trascorsa quell'unità di tempo.

Per esempio: se viene superato il numero massimo di richieste per secondo, occorre attendere 1 secondo a partire dalla prima richiesta per poterne effettuare una nuova; se viene invece superato il limite di richieste al minuto, occorre attendere 1 minuto dalla prima richiesta.

I limiti per unità di tempo sono descritti nella seguente tabella:

Numero massimo richieste per secondo 5
Numero massimo richieste per minuto 300