Saltar al contenido principal

Códigos de error y motivos

API: Drive

Este documento cubre la API de Drive. Si utilizas la API de Drive (Classic), consulta la guía de referencia de los errores de Drive (Classic).

La API de Drive usa los códigos de respuesta HTTP estándar para indicar si una solicitud de API se ha realizado correctamente o no.

Los siguientes rangos de código se aplican a todos los puntos de conexión:

  • 2xx\: la operación fue un éxito
  • 4xx\: la operación falló debido a un error del cliente; intentarlo de nuevo arrojaría el mismo resultado
  • 5xx\: la operación falló debido a un error temporal de DoorDash; vuelve a intentarlo más tarde

Más específicamente, los siguientes códigos tienen un significado común en todos los puntos de conexión:

  • 200: todo está bien
  • 400: la solicitud no era válida desde el punto de vista sintáctico y no se pudo procesar
    • A menudo, esto se debe a parámetros faltantes o parámetros con tipos de valores incorrectos
  • 401: error de autenticación
    • La causa más probable es un token JWT incorrecto o vencido, lo que significa que DoorDash no pudo verificar de forma segura la identidad de la persona que llama
  • 403: error de autorización
    • Se verificó de manera segura la identidad, pero la identidad suministrada no permite la operación solicitada o el acceso a los datos
  • 404: no existe el recurso
    • Esto podría deberse a que se solicitó una URL incorrecta o a que se buscó una entrega que no existe
  • 409: el estado del sistema no permite que la operación continúe
    • La mayoría de las veces, se debe a la creación de una nueva entrega con una ID duplicada o al intento de cancelar una entrega que no está activa
  • 422: error de validación lógica
    • La solicitud se formateó correctamente, pero en realidad no es posible ejecutar la operación
    • Por ejemplo, solicitar una entrega fuera del área de cobertura
  • 429: demasiadas solicitudes
    • Se enviaron demasiadas solicitudes en poco tiempo. Espera y vuelve a intentarlo.

Formato de error estándar

Cuando se obtiene un error, se utiliza el siguiente formato de respuesta estándar. Los errores individuales pueden incluir campos adicionales de ser necesario, pero se garantiza que todas las respuestas de error tengan al menos estos.

{
"code": "validation_error",
"message": "Validation Failed"
}

code: es una enumeración legible por máquina; los valores específicos son exclusivos de la operación.

message: es una explicación humana legible del error en inglés y solo se incluye con fines de depuración.

Errores de validación

Los errores de validación (aquellos con el número 400 de la lista anterior) tienen propiedades adicionales:

{
"code": "validation_error",
"message": "Validation Failed",
"field_errors": [
{
"field": "order_value",
"error": "Numeric value (100000000000) out of range of int (-2147483648 - 2147483647)"
}
]
}

field_errors: es un conjunto de todos los errores de validación que se encuentran. Ten en cuenta que, según la entrada específica, es posible que no se obtengan todos los errores de validación.

Cada error de validación se representa mediante un objeto con dos propiedades:

field: el nombre del campo, el nombre del parámetro o el body si no se puede atribuir un campo específico.

error: es una explicación humana legible del error en inglés y solo se incluye con fines de depuración.

Errores lógicos

Los errores lógicos (por ejemplo, la distancia de entrega solicitada es demasiado lejos) siguen el formato de error estándar. Las propiedades adicionales opcionales y los posibles valores del code son específicos para cada operación y se describen junto a ellos.

Errores asíncronos

Algunas operaciones pueden fallar después de recibir una respuesta inicial satisfactoria. Por ejemplo, una entrega nueva puede fallar después de que se creó si el pago no se realizó.

Los errores asíncronos se representan como estados de entrega. Para recuperarlos, el cliente debería solicitar la información de entrega más reciente y verificar el estado de devolución allí.