Icone de arquivo JSON

Alura - API Faker

API simulada de postagens

Como usar a API

Endpoints

GET /api/posts - Todas as postagens
GET /api/posts/category/[category] - Postagens por categoria
GET /api/posts/tags/[tag] - Postagens por tag
GET /api/posts/id/[id] - Postagem específica por ID

Parâ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 - Mobile
  • programacao - Programação
  • frontend - Frontend
  • devops - DevOps
  • ux-design - UX & Design
  • data-science - Data Science
  • inovacao-gestao - Inovação & Gestão

Tags Disponíveis:

  • tecnologia - Tecnologia
  • programacao - Programação
  • web - Web
  • mobile - Mobile
  • design - Design
  • negocios - Negócios
  • startup - Startup
  • inovacao - Inovação
  • frontend - Frontend
  • backend - Backend
  • devops - DevOps
  • data-science - Data Science

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 encontrado
  • 500: Erro interno do servidor