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.
{
"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:
- 400
invalid_requestFalta un parámetro, tiene un tipo incorrecto o está fuera de rango. - 403
forbiddenEl recurso existe, pero su propietario lo mantiene privado. - 404
not_foundNo hay nada en esta dirección. - 429
rate_limitedDemasiadas solicitudes desde tu dirección; espera y vuelve a intentarlo. - 500
internal_errorAlgo salió mal por nuestra parte; vuelve a intentarlo más tarde. - 503
unavailableUn 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.
{
"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/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.
{
"statusCode": 403,
"code": "favorites_private",
"message": "You are not allowed to do this."
}