Saltar al contenido

Errores

La forma única de los errores, los códigos de estado y qué hacer con cada uno.

Una sola forma para todos los errores

Cada respuesta de error tiene los mismos campos: el estado HTTP en statusCode, un code estable para comprobar en tu programa y un message escrito para personas. Los mensajes pueden cambiar; los códigos, no.

JSON
{
  "statusCode": 404,
  "code": "not_found",
  "message": "work not found"
}

Códigos de estado

Estos son los códigos que encontrarás al leer la API pública:

  • 400invalid_requestFalta un parámetro, tiene un tipo incorrecto o está fuera de rango.
  • 403forbiddenEl recurso existe, pero su propietario lo mantiene privado.
  • 404not_foundNo hay nada en esta dirección.
  • 429rate_limitedDemasiadas solicitudes desde tu dirección; espera y vuelve a intentarlo.
  • 500internal_errorAlgo salió mal por nuestra parte; vuelve a intentarlo más tarde.
  • 503unavailableUn servicio que necesita la operación, como la búsqueda, no está disponible por un momento.

Parámetros no válidos

Cuando falta un parámetro o está fuera de rango, la respuesta es 400 invalid_request, y issues enumera cada problema con el nombre del parámetro.

JSON
{
  "statusCode": 400,
  "code": "invalid_request",
  "message": "The request parameters are not valid.",
  "issues": ["limit: Too big: expected number to be <=50"]
}

Obras trasladadas

Cuando dos entradas del catálogo resultan ser la misma obra, una se fusiona con la otra. Al pedir la antigua se responde 301 con el nuevo identificador, o el nuevo formato y slug, en movedTo. Solicita la nueva dirección y actualiza lo que tengas guardado.

HTTP
HTTP/1.1 301 Moved Permanently

{ "movedTo": "01a0cb02-0a14-7877-911d-5b4dde76df72" }

Secciones privadas del perfil

Los miembros deciden qué partes de su perfil son públicas. Una sección oculta responde 403 con un código que la nombra, como favorites_private, library_private, activity_private o communities_private. Un miembro que cambió su nombre de usuario responde 404 member_renamed con el nuevo nombre en username.

JSON
{
  "statusCode": 403,
  "code": "favorites_private",
  "message": "You are not allowed to do this."
}