Alura - API Faker
API simulada de postagens
Como usar a API
Endpoints
GET /api/posts
- Todas as postagensGET /api/posts/category/[category]
- Postagens por categoriaGET /api/posts/tags/[tag]
- Postagens por tagGET /api/posts/id/[id]
- Postagem específica por IDParâmetros de Query
page
(opcional): Número da página (padrão: 1)limit
(opcional): Número de postagens por página (1-9, padrão: 9)
Nota: O número total de páginas é calculado dinamicamente: Math.ceil(45 / limit)
. Por exemplo: 6 posts por página = 8 páginas, 9 posts por página = 5 páginas.
Categorias Disponíveis:
mobile
- Mobileprogramacao
- Programaçãofrontend
- Frontenddevops
- DevOpsux-design
- UX & Designdata-science
- Data Scienceinovacao-gestao
- Inovação & Gestão
Exemplos de URLs:
/api/posts
- Todas as postagens (primeira página)/api/posts?page=2&limit=3
- Segunda página (3 postagens)/api/posts/category/programacao
- Postagens da categoria "Programação"/api/posts/category/mobile?page=2&limit=6
- Postagens "Mobile" (página 2, 6 postagens)/api/posts/tags/tecnologia
- Postagens com tag "Tecnologia"/api/posts/tags/startup?page=1&limit=5
- Postagens com tag "Startup" (5 postagens)/api/posts?page=8&limit=6
- Oitava página com 6 postagens (última página)/api/posts/id/8b986a7e-f6c8-49e1-910d-cdfc7c1a2f86
- Postagem específica por ID
Nota: A rota /category/[category]
filtra postagens pela categoria especificada. A rota /tags/[tag]
filtra postagens que contêm a tag especificada. A rota /id/[id]
retorna uma única postagem específica.
Tipos de Resposta:
- Lista de postagens:
/api/posts
,/api/posts/category/[category]
,/api/posts/tags/[tag]
- Retornam array de postagens com paginação - Postagem única:
/api/posts/id/[id]
- Retorna uma única postagem (sem paginação)
Exemplo de Resposta:
{ "posts": [ { "id": "8b986a7e-f6c8-49e1-910d-cdfc7c1a2f86", "title": "Título da postagem", "content": "Conteúdo da postagem...", "author": "Stacy Kertzmann DDS", "createdAt": "2025-08-25T21:35:58.054Z", "likes": 100, "category": { "slug": "inovacao-gestao", "name": "Inovação & Gestão", "description": "Tecnologia para desenvolvimento de sistemas" }, "tags": [ { "slug": "negocios", "name": "Negócios" }, { "slug": "programacao", "name": "Programação" }, { "slug": "inovacao", "name": "Inovação" } ], "imageUrl": "https://picsum.photos/seed/QOzp4/400/300?grayscale&blur=6" } ], "pagination": { "currentPage": 1, "totalPages": 5, "totalPosts": 45, "postsPerPage": 9, "hasNextPage": true, "hasPreviousPage": false }, "meta": { "generatedAt": "2025-09-03T10:30:00.000Z", "seed": "page-1-limit-9", "category": "inovacao-gestao" } }
Exemplo de Resposta (Postagem Única):
{ "post": { "id": "8b986a7e-f6c8-49e1-910d-cdfc7c1a2f86", "title": "Título da postagem", "content": "Conteúdo da postagem...", "author": "Stacy Kertzmann DDS", "createdAt": "2025-08-25T21:35:58.054Z", "likes": 100, "category": { "slug": "inovacao-gestao", "name": "Inovação & Gestão", "description": "Tecnologia para desenvolvimento de sistemas" }, "tags": [ { "slug": "negocios", "name": "Negócios" }, { "slug": "programacao", "name": "Programação" } ], "imageUrl": "https://picsum.photos/seed/QOzp4/400/300?grayscale&blur=6" }, "meta": { "generatedAt": "2025-09-03T10:30:00.000Z", "seed": "post-8b986a7e-f6c8-49e1-910d-cdfc7c1a2f86" } }
Limitações:
- Máximo de 9 postagens por página
- Total de 45 postagens
- Número de páginas varia conforme o limite por página
- Páginas válidas: 1 até o total calculado dinamicamente
- Limite válido: 1-9
Códigos de Erro:
400
: Parâmetros inválidos (página inexistente ou limite fora do range 1-9)404
: Categoria, tag ou ID não encontrado500
: Erro interno do servidor