Compartir a través de


Códigos de respuesta de api de referencias

Se aplica a: Centro de partners | Referencias del Centro de partners

Roles adecuados: Administrador de referencias | Usuario de referencias

Las API REST de referencias del Centro de partners devuelven un objeto JSON que contiene un código de estado. Este código que indica si la solicitud se realizó correctamente o por qué se produjo un error.

Respuestas correctas

Un código de estado 2xx indica que la solicitud del cliente se ha recibido, comprendido y aceptado correctamente. Los siguientes códigos de estado 2xx indican una respuesta correcta:

  • 200: Confirmación del éxito
  • 201: Recurso creado
  • 202: Aceptado
  • 204: No hay contenido que devolver

Respuestas de errores

Cualquier respuesta con un código de estado 4xx o 5xx incluye un mensaje de error con detalles sobre las condiciones de error de ese código.

En la tabla siguiente se enumeran y describen los códigos de estado HTTP que se pueden devolver para escenarios de error.

status code Mensaje de estado Descripción
400 Bad Request No se puede procesar la solicitud porque tiene un formato incorrecto o incorrecto.
401 No autorizado La información de autenticación necesaria falta o no es válida para el recurso.
403 Prohibida Se denegó el acceso al recurso solicitado. Es posible que el usuario no tenga permisos suficientes.
404 No encontrado El recurso solicitado no existe.
405 Método no permitido El método HTTP de la solicitud no se permite en el recurso.
406 No aceptable Este servicio no admite el formato solicitado en el encabezado Accept.
409 Conflicto El estado actual entra en conflicto con lo que espera la solicitud. Por ejemplo, puede que la carpeta principal especificada no exista.
410 Eliminado El recurso solicitado ya no está disponible en el servidor.
411 Longitud requerida Se requiere un encabezado Content-Length en la solicitud.
412 Error en la condición previa Una condición previa proporcionada en la solicitud (por ejemplo, un encabezado if-match) no coincide con el estado actual del recurso.
413 Entidad de solicitud demasiado grande El tamaño de la solicitud supera el límite máximo.
415 Tipo de medio no compatible El tipo de contenido de la solicitud es un formato que no admite el servicio.
416 No se puede satisfacer el intervalo solicitado El intervalo de bytes especificado no es válido o no está disponible.
422 Entidad no procesable No se puede procesar la solicitud porque es semánticamente incorrecta.
423 Bloqueado El recurso al que se va a acceder está bloqueado.
429 Demasiadas solicitudes La aplicación cliente está limitada y no debe intentar repetir la solicitud durante algún tiempo.
500 Internal Server Error Se produjo un error interno del servidor al procesar la solicitud.
501 No implementado La característica solicitada no está implementada.
503 Servicio no disponible El servicio no está disponible temporalmente debido a que se encuentra en mantenimiento o está sobrecargado. Puede repetir la solicitud después de un retraso, cuya longitud puede especificarse en un encabezado Retry-After.
504 Tiempo de espera de puerta de enlace El servidor, mientras actúa como proxy, no recibió una respuesta oportuna del servidor ascendente al que necesitaba acceder al intentar completar la solicitud. Puede producirse junto con el error 503.
507 Almacenamiento insuficiente Se alcanzó la cuota de almacenamiento máxima.
509 Límite de ancho de banda excedido La aplicación cliente se limitó para superar el límite máximo de ancho de banda. La aplicación puede volver a intentar la solicitud después de algún tiempo.

Tipo de recurso de error

La respuesta de error es un objeto JSON único que contiene una propiedad única denominada error. Este objeto incluye todos los detalles del error. Puede usar la información que se devuelve aquí para reemplazar o complementar el código de estado HTTP.

En la tabla y los ejemplos de código siguientes se describe el esquema de una respuesta de error.

Nombre Escribir Descripción
código string Siempre se devuelve. Indica el tipo de error que se produjo. No es NULL.
message string Siempre se devuelve. Describe el error en detalle y proporciona más información de depuración. Non-null nonempty. La longitud máxima es de 1024 caracteres.
innerError objeto Opcional. Otro objeto de error con información más específica sobre el error se produjo.
innerError.code cadena numérica Siempre se devuelve, si innerError no es NULL. Proporciona información de código de error más específica en el valor de código de error superior.
innerError.message string Siempre se devuelve, si innerError no es NULL. Proporciona un mensaje de error más específico en la cadena de mensaje de error superior.
innerError.details matriz objeto Opcional. Contiene más detalles sobre el error. Principalmente útil en los errores de validación de entrada.
Destino string Opcional. Destino en el que se originó el error.

Respuesta de error de ejemplo

{
  "error": {
    "code": "unauthenticated",
    "message": "The caller is not authenticated.",
    "innerError": {
      "code": "99902",
      "message": "Request not authenticated",
      "details": null
    }
  }
}

Otro ejemplo con el objeto innerError.details rellenado:

{
  "error": {
    "code": "invalidRequest",
    "message": "The request is malformed or incorrect.",
    "innerError": {
      "code": "99901",
      "message": "InvalidInput",
      "details": [
        {
          "InvalidReferralForCoSellConversion": [
            "If PartnerLed referral has no solution it cannot be converted to co-sell referral"
          ]
        }
      ]
    }
  }
}

Propiedad code

La propiedad code contiene uno de los siguientes valores posibles. Las aplicaciones deben estar preparadas para administrar cualquiera de estos errores.

Código Código de estado HTTP Descripción
invalidRequest 400 La solicitud tiene un formato incorrecto o es incorrecta.
unauthenticated 401 El autor de la llamada no está autenticado.
accessDenied 403 El autor de la llamada no tiene permiso para realizar la acción.
itemNotFound 404 No se encontró el recurso.
resourceModified 409 El recurso que se está actualizando cambia desde que el autor de la llamada lo leyó por última vez, normalmente un error de coincidencia de eTag.
preconditionFailed 412 Una condición previa proporcionada en la solicitud (por ejemplo, un encabezado if-match) no coincide con el estado actual del recurso.
generalException 500 Se ha producido un error no especificado.
serviceNotAvailable 503 El servicio no está disponible. Intente volver a realizar la solicitud después de un retraso. Es posible que haya un encabezado Retry-After.

Propiedad message

La propiedad message en la raíz contiene un mensaje de error pensado para que el desarrollador lo lea. Los mensajes de error no se localizan y no se deben mostrar directamente al usuario. El código no debe comprobar message los valores solo porque pueden cambiar en cualquier momento y a menudo contienen información dinámica específica de la solicitud con error. Debe codificar con códigos de error devueltos en code propiedades y, a continuación, para obtener más detalles, combinarlos con el texto del mensaje.

Objeto InnerError

El innererror objeto puede contener de forma recursiva más innererror objetos con códigos de error más específicos. La aplicación cliente, al controlar un error, debe recorrer en bucle todos los códigos de error disponibles y usar el más detallado que entienden.

Hay algunos errores más que podría encontrar la aplicación dentro de los objetos anidados innererror . Las aplicaciones no son necesarias para controlar estos errores, pero pueden hacerlo si lo eligen. El servicio puede agregar nuevos códigos de error o dejar de devolver los antiguos en cualquier momento, por lo que es importante que todas las aplicaciones puedan controlar los [códigos de error básicos].

Códigos de error

A continuación se muestran los códigos de error devueltos por las API:

Estado HTTP Código de error HTTP Código de error Descripción
BadRequest 400 99901 Entrada no válida
No autorizado 401 99902 Acceso no autorizado
BadRequest 400 99903 Falta la entrada
NotFound 404 99,904 Recurso no encontrado
InternalServerError 500 99905 Error no especificado
TooManyRequests 429 99906 Demasiadas solicitudes
InternalServerError 500 99907 Error interno transitorio
BadRequest 400 99908 La propiedad no es actualizable
BadRequest 400 99909 La propiedad no acepta valores NULL
Condición previaFailed 412 99910 El valor de Etag no coincide
BadRequest 400 99911 Estado de referencia no válido para invitar
BadRequest 400 99912 Se requiere una solución con el tipo "name"
Prohibido 403 99913 Organización no permitida para crear recursos
Prohibido 403 99914 Organización no permitida para participar en interacciones de venta conjunta
InternalServerError 500 99915 Error interno de ejecución de solicitudes
Conflicto 409 99917 Recurso ya modificado a través de otra solicitud
PreConditionFailed 412 99918 Una condición previa proporcionada en la solicitud (por ejemplo, un encabezado if-match) no coincide con el estado actual del recurso.
BadRequest 400 99919 Calificación de referencia no válida para actualizar
InternalServerError 500 99999 Excepción general durante el procesamiento de la solicitud