Saltar al contenido principal
DiffHook/Documentos
Referencia de la APIManejo de errores

Manejo de errores

Formato de error

La mayoría de los errores de API devuelven un objeto JSON con una única cadena error:

{ "error": "Monitor not found" }

Algunos errores incluyen campos adicionales:

Errores de límite de tasa (429) incluyen un campo retry_after_seconds:

{
  "error": "Too many requests",
  "retry_after_seconds": 60
}

Errores de token de OAuth siguen a RFC 6749 e incluyen un error_description:

{
  "error": "invalid_client",
  "error_description": "Invalid client credentials"
}

Códigos de estado HTTP

EstadoSignificado
400Solicitud incorrecta: campos faltantes o no válidos
401Sin autenticar: token faltante, no válido o caducado
403Prohibido: token válido pero permisos insuficientes o se alcanzó el límite del plan
404Recurso no encontrado
429Tarifa limitada: retroceda y vuelva a intentarlo
500Error interno del servidor: transitorio, reinténtelo con retroceso
503Servicio no disponible: la dependencia ascendente (por ejemplo, el proveedor de OAuth) está inactiva

Mensajes de error comunes

MensajeEstado¿Qué pasó?
"Authorization header missing or invalid"401Sin encabezado Authorization: Bearer <token>
"Invalid or expired token"401El token ha caducado o ha sido manipulado: volver a autenticarse
"Invalid API key"401La clave API utilizada para generar este token ha sido revocada
"Monitor not found"404No existe ningún monitor con este ID en su equipo
"Your plan allows a maximum of N monitors"403Actualice su plan para crear más monitores
"Too many requests"429Ha excedido el límite de tasa; consulte el campo retry_after_seconds
"Internal server error"500Error transitorio del servidor: vuelva a intentarlo con retroceso exponencial

Manejo de errores en el código

const res = await fetch('https://www.diffhook.com/api/monitors', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${accessToken}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload),
})

if (!res.ok) {
  const body = await res.json()
  const message = body.error

  if (res.status === 429) {
    const retryAfter = body.retry_after_seconds ?? 60
    // wait and retry
  } else if (res.status === 401) {
    // re-authenticate with POST /api/oauth/token
  } else {
    console.error(message)
  }
}

errores 5xx

Los errores del servidor son transitorios. Vuelva a intentarlo con un retroceso exponencial; la mayoría se resuelve en segundos. Si un 500 o 503 persiste durante más de unos minutos, consulte nuestra página de estado o envíe un correo electrónico a support@diffhook.com.

DiffHook - Monitorizacion de sitios web