Limite superato per l'impaginazione API

0

Sto implementando un'API con paginazione che ha max_results che può essere specificata dal client. Il server avrà un limite hardcoded, ad esempio 100 risultati per pagina.

Nella situazione in cui il client specifica max_results > 100 quale è un comportamento più previsto e perché lo pensi così:

  • restituisce solo 100
  • genera un errore con un messaggio che il server non può gestire più di 100 per pagina
  • altra soluzione?
posta erkfel 07.11.2018 - 17:43
fonte

1 risposta

3

In generale, gli errori espliciti sono buoni. Ma per il problema specifico di un limite di paginazione, il troncamento silenzioso del risultato è probabilmente migliore.

  • Questo non è davvero un errore fatale - continuerai a restituire dati.
  • Il client può inviare più richieste fino a quando non hanno ricevuto tutti i dati necessari.
  • Questo ti permette di documentare il limite come limite superiore dei valori restituiti, dandoti la libertà di restituire un minor numero di risultati.
  • Ad esempio, puoi modificare il limite senza preavviso, eventualmente anche dinamicamente.

Sarebbe comunque una buona idea avvisare il cliente quando ha richiesto più elementi di quanti ne avrebbero mai avuto. Ad esempio, la tua API potrebbe restituire un oggetto JSON che è {"data": [...]} o {"error": ...} . In entrambi i casi, è possibile aggiungere una voce "warning": ..." . Ma ciò ha senso solo per le API pubbliche. Quando un'API viene utilizzata solo internamente, è probabilmente sufficiente ignorare in silenzio il problema (sperando che altri canali di comunicazione spieghino la limitazione) o almeno registrarlo per la revisione.

    
risposta data 07.11.2018 - 17:56
fonte

Leggi altre domande sui tag