docs · api
PT
Endpoints · Busca

Busca

A busca faz uma pesquisa textual (full-text) sobre título e subtítulo dos posts publicados do blog. É a base para um campo de pesquisa no seu site, retornando resultados enxutos e prontos para listar.

Buscar posts

GET https://api.draftin.io /public/search

Requer X-API-Key

Pesquisa posts publicados por título/subtítulo. Exige um termo (q) com no mínimo 3 caracteres e retorna, dentro do envelope de sucesso, um objeto SearchResponse em data — com os resultados em data.data e os metadados em data.meta.

Quando usar

  • Alimentar um campo de busca no cabeçalho ou em uma página dedicada.
  • Oferecer autocomplete de artigos (lembre o mínimo de 3 caracteres).
  • Listar resultados com capa e data sem precisar carregar o post inteiro.

Query parameters

ParâmetroTipoObrigatórioDescrição
qstringSimTermo de busca. Mínimo de 3 caracteres — abaixo disso a requisição é rejeitada com 400.
limitintegerNãoQuantidade de resultados por página. Máximo 50.
Padrão: 10
offsetintegerNãoQuantos resultados pular (paginação por deslocamento).
Padrão: 0

Exemplo de requisição

curl "https://api.draftin.io/public/search?q=javascript&limit=10&offset=0" \
  -H "X-API-Key: $DRAFTIN_API_KEY"

Exemplo de resposta

200 OK — { success, data: SearchResponse }
{
  "success": true,
  "data": {
    "data": [
      {
        "id": "clxxx101",
        "title": "Introdução ao JavaScript",
        "subtitle": "Do zero ao primeiro script",
        "slug": "introducao-ao-javascript",
        "coverUrl": "https://cdn.exemplo.com/capa.jpg",
        "publishedAt": "2026-06-01T12:00:00.000Z"
      }
    ],
    "meta": { "q": "javascript", "limit": 10, "offset": 0, "count": 1 }
  }
}

Campos de data.data[] (SearchResultItem)

idstring
ID do post.
titlestring
Título do post.
subtitlestringnullable
Subtítulo, quando houver.
slugstring
Slug para montar o link do resultado.
coverUrlstringnullable
URL da imagem de capa, quando houver.
publishedAtstring · date-timenullable
Data/hora de publicação (ISO 8601, UTC).

Campos de data.meta

qstring
O termo de busca processado.
limitinteger
Limite aplicado nesta página.
offsetinteger
Deslocamento aplicado nesta página.
countinteger
Quantidade de itens retornados em data nesta página.

Erro de validação

Sem q ou com menos de 3 caracteres, a API responde 400:

400 Bad Request
{
  "success": false,
  "error": {
    "message": "Erro de validação",
    "code": "VALIDATION_ERROR",
    "type": "field_validation",
    "statusCode": 400,
    "retryable": false,
    "details": {
      "fields": [
        { "field": "q", "message": "Campo deve ter pelo menos 3 caracteres", "code": "too_small" }
      ]
    },
    "requestId": "req_5c26469a-1234-4c8b-9e21-370450bbda3a",
    "docs": "https://docs.draftin.io/errors/VALIDATION_ERROR"
  }
}

Respostas possíveis

StatusSignificado
200
OK
Resultados da busca (data: objeto SearchResponse).
400
Bad Request
Parâmetro q ausente ou com menos de 3 caracteres (error.code: VALIDATION_ERROR).
401
Unauthorized
Chave de API inválida ou ausente.
500
Internal Server Error
Erro interno; repita com backoff.

Boas práticas

  • Valide no cliente antes de chamar. Só dispare a busca a partir de 3 caracteres — evita 400 desnecessário.
  • Use debounce em campos de digitação para reduzir chamadas durante o typing.
  • Pagine com limit/offset (limite máximo 50) e use data.meta.count para saber quando parar.
  • Faça a busca no servidor para não expor a chave no front-end.

Casos de uso comuns

  • Barra de pesquisa com resultados instantâneos (após 3 caracteres + debounce).
  • Página "/buscar?q=…" com paginação e contagem por página.
  • Pré-visualização rica de resultados usando coverUrl e subtitle.