CORS, Rate Limit e Paginação em APIs
Entenda bloqueios de CORS no navegador, erro 429 de limite de requisições e consumo paginado.
Problemas reais do dia a dia
1. CORS (Cross-Origin Resource Sharing)
É uma trava de segurança do navegador que impede um site em http://localhost:5173 de ler respostas de outro domínio (https://api.outro.com), a menos que o servidor da API envie o header Access-Control-Allow-Origin (como a PokéAPI faz para liberar acesso público no front-end). É por isso que uma rota pode funcionar no Postman/Insomnia e falhar no navegador.
2. Rate Limit (429 Too Many Requests)
Muitas APIs limitam quantas requisições você pode fazer por minuto. Ao receber 429, evite loops infinitos, use cache no back-end e respeite o header Retry-After se existir.
3. Paginação
APIs raramente devolvem milhares de registros de uma vez. Na PokéAPI, por exemplo, você envia ?limit=2&offset=0 e recebe count, next, previous e a lista results da página atual.
{
"count": 1302,
"next": "https://pokeapi.co/api/v2/pokemon?offset=2&limit=2",
"previous": null,
"results": [
{
"name": "bulbasaur",
"url": "https://pokeapi.co/api/v2/pokemon/1/"
},
{
"name": "ivysaur",
"url": "https://pokeapi.co/api/v2/pokemon/2/"
}
]
}