Apollo-link-rest: 404 OK La respuesta devuelve un valor nulo en lugar de un error

Creado en 15 jul. 2019  ·  6Comentarios  ·  Fuente: apollographql/apollo-link-rest


Recientemente estuve trabajando en un proyecto usando apollo-link-rest para homogeneizar las diferentes llamadas (a diferentes puntos finales) que estaba usando la aplicación. Algunos puntos finales son GraphQL, otros descansan.

Uno de mis puntos finales fallaba porque el recurso que estaba buscando no existía y, por lo tanto, la recuperación devolvía un 404. Pero desde # 119 & # 142 (https://github.com/apollographql/apollo-link-rest/blob /master/src/restLink.ts#L1047).

¿Por qué tendría sentido ocultar información a la respuesta? ¿Podría hacerse esto en una configuración basada en?

help wanted 🛠 question❔

Todos 6 comentarios

Para muchas empresas, un 404 es un "error no fatal", simplemente significa que falta algo. A menudo, no hay datos "adicionales" en la respuesta 404, por lo que devolver un valor nulo parecía el modelo que mejor se ajustaba a GraphQL. Sobre la base de las discusiones en el n. ° 119 y en el exterior, parecía que había consenso en que esto estaba generando un resultado más doloroso, por lo que se realizó el cambio.

Si aún desea que esto falle, puede escribir su propio contenedor customFetch que arrojará un error cuando se produzca el 404.

Gracias @fbartho , creo que tiene sentido. Creo que el problema en nuestro caso es que nuestro esquema se ve muy REST-y, por lo que es difícil trabajar sin el 404. Seguiré adelante e implementaré mi propio customFetch. ¡Gracias!

No creo que los errores 404 deban tratarse de manera diferente, siguen siendo un error del cliente.

@kevinrobayna ¿

@anasnain Tuve que manejarlo en el evento onCompleted :

onCompleted: (data) => {
  const token = data?.passwordRecoveryToken;
  // Apollo client sends null on 404 errors: https://github.com/apollographql/apollo-link-rest/issues/119
  if (!token) return handleEmailNotFound();

  return onGoToVerifyCode({ tokenId: token.id, email: inputs?.email?.value });
},

He puesto un PR para restablecer los 404 como errores de red normales, para coincidir con las buenas prácticas de API REST: https://github.com/apollographql/apollo-link-rest/pull/283

¿Fue útil esta página
0 / 5 - 0 calificaciones