Verificação de Links Quebrados

Verifica a saúde de URLs em textos, substitui links quebrados por marcador configurável e retorna o status de cada link. Use para sanitizar conteúdos ricos (MDX, mensagens, blocos de conhecimento) antes de publicação e evitar 404 ou timeout.

Como funciona

  • Extração de URLs a partir do text.
  • Validação paralela via HTTP HEAD/GET com timeout e limite de concorrência.
  • Detecção de tipo (imagem, documento, etc.) por Content-Type.
  • Cache opcional para acelerar revalidações.
  • Substituição de links quebrados no texto com rótulo configurável.

Endpoint

POST /api/utils/validateLinksInText

Autenticação: Authorization: Bearer <Tolky Domain Token>

Corpo da requisição

CampoTipoObrigatórioDescrição
textstringsimTexto contendo URLs a serem validadas
options.replaceLabelstringnãoTexto usado no lugar de links quebrados (ex.: "[link indisponível]")
options.cacheTtlSecondsintegernãoTTL do cache em segundos
options.timeoutMsintegernãoTimeout por requisição em ms
options.concurrencyintegernãoParalelismo de validação

Exemplo de requisição

curl -X POST "$BASE_URL/api/utils/validateLinksInText" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOLKY_DOMAIN_TOKEN" \
  -d '{
    "text": "Veja o PDF https://example.com/arquivo.pdf e a imagem https://example.com/img-404.png",
    "options": {
      "replaceLabel": "[link indisponível]",
      "timeoutMs": 5000,
      "concurrency": 8
    }
  }'

Exemplo de resposta

{
  "text": "Veja o PDF https://example.com/arquivo.pdf e a imagem [link indisponível]",
  "links": [
    { "url": "https://example.com/arquivo.pdf", "ok": true, "status": 200, "mimeType": "application/pdf", "type": "document" },
    { "url": "https://example.com/img-404.png", "ok": false, "status": 404, "mimeType": "image/png", "type": "image" }
  ]
}

Códigos de erro

  • 400: text ausente ou inválido
  • 401: credenciais inválidas
  • 500: erro interno

Boas práticas

  • Use replaceLabel para evitar URLs quebradas em conteúdos publicados.
  • Habilite cacheTtlSeconds em rotas de pré-publicação para reduzir latência.
  • Defina timeoutMs e concurrency conforme o perfil da sua infraestrutura.
  • Monitore taxas de ok=false para identificar fontes externas instáveis.