Validar Links em Texto (Utils)

Recebe um text com possíveis URLs, valida cada link (HTTP HEAD/GET) e retorna:

  • o text com substituição dos links quebrados por um marcador configurável; e
  • a lista de links com o status de cada URL encontrada.

Endpoint

POST /api/utils/validateLinksInText

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ãoCache (em segundos) para resultados de verificação
options.timeoutMsintegernãoTimeout por requisição (ms)
options.concurrencyintegernãoNúmero máximo de validações simultâneas

Exemplo de Requisição

curl -X POST "{{{BASE_URL}}}/api/utils/validateLinksInText" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {{seu-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: Campo obrigatório ausente ou inválido (text deve ser string)
  • 401: Credenciais inválidas (Tolky Domain Token ausente ou incorreto)
  • 500: Erro interno do servidor

Observações

  • status pode ser null quando ocorrer timeout ou falha na conexão; nesse caso ok será false.
  • Utilize cacheTtlSeconds para reduzir latência em textos que se repetem.
  • concurrency controla o paralelismo do verificador; ajuste conforme a sua necessidade.