Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

423
Vistas
¿Cómo manejar los errores de API usando aws-amplify?

Actualmente estoy tratando de publicar datos en mis funciones aws lambda activadas por aws api-gateway usando aws-amplify react lib.

Aquí está el código:

 API.post("snippets","snippets/", { body: data, }).then(response => response).catch(console.log(err))

En el caso principal, todo está bien.

Pero mi función lambda está diseñada para validar los datos de entrada y devolver un código de estado 400 con una carga útil devuelta que se ve así:

 { "errors": [ { "field": "title", "message": "This field is required" } ] }

Me gustaría detectar esos errores para mostrarlos en la interfaz, pero aws-amplify parece tener un comportamiento no documentado.

De forma predeterminada, el código de estado 400 devuelto se lanza con un mensaje de error predeterminado:

 Error: Request failed with status code 400 at createError (createError.js:16) at settle (settle.js:18) at XMLHttpRequest.handleLoad (xhr.js:77)

¿Hay alguna forma de obtener la carga útil devuelta en lugar de este error mágico?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Resulta que bajo el capó, aws-amplify usa Axios para hacer llamadas http.

Al usar Axios, debe console.log(error.response) : https://github.com/axios/axios/issues/960

Aquí está la solución que he hecho:

 API.post("snippets","snippets/", { body: data, }).then(response => response).catch(error => console.log(error.response.data))

Se encuentra abierta una solicitud de extracción en la documentación aws-amplify : https://github.com/aws/aws-amplify/pull/633

over 4 years ago · Santiago Trujillo Denunciar

0

También enfrenté problemas similares. Mostraba el mensaje de error predeterminado "Solicitud fallida con el código de estado 400", en lugar del mensaje que devuelve la API.

Registré el objeto Error y no mostró el atributo de respuesta en él. Pero tenemos atributo de respuesta. Intenté registrar Error.response y contenía la respuesta enviada desde la API.

over 4 years ago · Santiago Trujillo Denunciar

0

Acabo de descubrir esto revisando los documentos de Amplify 'Cancelar solicitudes de API' .

Por lo que puedo ver, este es el contenido del objeto de error devuelto por la llamada a la API:

ingrese la descripción de la imagen aquí

Esto es lo que estoy haciendo para imprimir el error, obviamente harías mucho más aquí, pero es un buen comienzo.

 async uploadUser(state, payload) { const promise = API.graphql({ query: createUser, variables: { input: payload }, }); try { await promise; } catch (error) { // Print out the actual error given back to us. console.log(error.errors[0].message); // If the error is because the request was cancelled we can confirm here. if (API.isCancel(error)) { // handle user cancellation logic. console.log(error.message); } }

Espero que ayude 😃

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda