Paginação
Nossa API utiliza um sistema de paginação para controlar a quantidade de dados retornados em uma única resposta, facilitando a navegação e o uso eficiente dos recursos.
Solicitação de rotas com Paginação
Ao realizar uma solicitação que suporte paginação, você pode passar o parâmetro page na query string para especificar qual página de resultados deseja obter. Por padrão, cada página contém 50 itens, mas esse valor pode ser diferente de acordo com a rota acessada.
Exemplo de Solicitação:
GET /api/v1/workers?page=1Resposta de Paginação
A resposta incluirá uma estrutura de dados que fornece informações sobre a paginação, além dos dados solicitados:
{
"pagination": {
"total_items": 14242,
"showing_items": 50,
"total_pages": 285,
"current_page": 1,
"previous_page": 1,
"next_page": 2
},
"data": [
...
]
}Descrição dos Campos de Paginação
total_items: O número total de itens disponíveis na coleção.
showing_items: O número de itens retornados na página atual.
total_pages: O número total de páginas disponíveis.
current_page: A página atual dos resultados.
previous_page: A página anterior (ou a primeira página se a atual for a primeira).
next_page: A próxima página (ou a última página se a atual for a última).
Se você solicitar uma página que exceda o número total de páginas disponíveis, a API retornará um erro informando que você atingiu o número máximo de páginas:
{
"code": "VALIDATION_ERROR",
"message": "Você já atingiu o número máximo de páginas! Número máximo: 285",
"status_code": 422,
"timestamp": "2024-08-06T13:13:22.139Z",
"path": "/api/v1/error-path",
"handled": true,
"errors": []
}Exemplo de Uso:
Aqui está um exemplo de como a paginação pode ser utilizada em uma requisição com typescript e a biblioteca axios:
import axios from "axios";
const pontoDigitalApi = axios.config({
baseURL: process.env.PONTO_DIGITAL_API_URL,
headers: {
"x-api-key": process.env.PONTO_DIGITAL_API_KEY,
},
});
pontoDigitalApi
.get("/v1/workers", {
params: {
page: 2, // Informe a página desejada
},
})
.then((response) => {
console.log(response.data.pagination);
console.log(response.data.data);
})
.catch((error) => {
console.error(handlePontoDigitalError(error))
});Em caso de problemas ou dúvidas entre em contato com o [email protected].
Atualizado