2016-02-23 39 views
6

Quando si implementa un'API Rest con i parametri per il paging, il paging deve essere indicizzato a zero o iniziare da 1. I parametri sarebbero Page e PageSize.Il paging deve essere indicizzato a zero all'interno di un'API?

Per me, ha senso per iniziare a 1, dal momento che stiamo parlando di pagine

+0

Quindi, utilizzare 1 e documentarlo correttamente :) –

+0

Bene, Sì! È una di quelle fasi decisionali in cui odio per le persone criticare la decisione per gli anni a venire! Se è ovvio che alcune persone preferiscano un modo e l'altro .. Sono felice di scegliere qualcosa e andare con esso! –

+1

Esistono centinaia di migliaia di API che utilizzano decine di approcci diversi. Scegli un approccio che ti si addice e, di nuovo, * documentalo correttamente *. Crea un'API che vorresti utilizzare. –

risposta

6

Non c'è alcuna norma per esso. Basta dare un'occhiata: ci sono centinaia di migliaia di API che utilizzano approcci diversi.

La maggior parte di API che conosco utilizzare uno dei seguenti approcci per l'impaginazione:

  • offset e limit o
  • page e size

Entrambi possono essere 0 o 1 indicizzati. Che è migliore? Dipende da te.

Basta scegliere quello che si adatta alle proprie esigenze e documentarlo correttamente.


Inoltre, è possibile fornire alcuni collegamenti nel payload della risposta per semplificare la navigazione tra le pagine.

Si consideri, ad esempio, si sta leggendo i dati dalla pagina 2. Quindi, fornire un link per la pagina precedente (Pagina 1) e per la pagina successiva (pagina 3):

{ 
    "data": [ 
     ... 
    ], 
    "paging": { 
     "previous": "http://api.example.com/foo?page=1&size=10", 
     "next": "http://api.example.com/foo?page=3&size=10" 
    } 
} 

E ricordate, sempre fare un'API che piacerebbe usare.