Apollo-link-rest: Exemple de React-Apollo cassé

Créé le 7 juin 2018  ·  6Commentaires  ·  Source: apollographql/apollo-link-rest

Bonjour:

Je ne fais que commencer avec apollo-link-rest avec la configuration de base dans votre react-apollo codesandbox .

Au lieu d'afficher la liste des émissions de télévision, l'interface affiche l'erreur suivante: : Network error: Failed to execute 'fetch' on 'Window': Invalid credentials mode .

Lors de la réplication de ce code dans mon propre environnement create-react-app , j'ai également détecté l'erreur suivante lors de l'exécution d'une requête sur Apollo DevTools:

{
  "errors": [
    {
      "message": "forward is not a function",
      "locations": [
        "TypeError: forward is not a function\n    at RestLink../node_modules/apollo-link-rest/bundle.umd.js.RestLink.request (http://localhost:3000/static/js/bundle.js:21028:20)\n    at http://localhost:3000/static/js/bundle.js:19809:33\n    at ApolloLink.request (http://localhost:3000/static/js/bundle.js:17407:12)\n    at ApolloLink.request 
    }
  ]
}

Merci beaucoup pour votre travail sur ce lien! Cela rend le travail avec REST beaucoup plus gérable en apportant des fonctionnalités de type GraphQL pour ceux d'entre nous qui sont bloqués avec les API REST.

help wanted 🛠 question❔

Commentaire le plus utile

Devrait être corrigé dans la v0.3.1 - maintenant disponible!

Tous les 6 commentaires

@sinisterra Quand nous voyons forward is not a function dans notre application, c'est généralement parce que nous avons oublié une directive @client ou @rest(…) sur l'un des nœuds. Est-ce le cas pour vous?

En ce qui concerne votre erreur avec fetch - dans quel navigateur testez-vous?

@fbartho Non, @rest est appliquée correctement. J'utilise Google Chrome 67.0.3396.62. Lorsque j'ai essayé d'exécuter l'exemple dans Firefox 60.0.1, cela a également échoué mais avec une erreur différente: Network error: 'credentials' member of RequestInit 'null' is not a valid value for enumeration RequestCredentials.

il ne s'agit pas seulement de l'exemple cassé! Je pense que cette question est très critique.
J'obtiens également la même erreur en ce moment, dans mon environnement de production qui fonctionnait bien ces derniers mois en utilisant apollo-link-rest. Je suppose que cela doit être dû à une mise à jour du navigateur?
J'utilise chrome Version 67.0.3396.79 (Official Build) (64-bit)

Le même problème se produit dans Safari et Firefox .. Je ne comprends pas du tout… la même version de mon application fonctionnait bien depuis le 24 mai.

cela ne se produit qu'avec les requêtes que je fais avec apollo-link-rest, bien que j'aie configuré mon customFetch fn, qui fonctionne. ¯_ (ツ) _ / ¯

J'obtiens également la même erreur lorsque je supprime ma configuration customFetch .

J'ai effectivement trouvé le problème.
J'utilise une fonction customFetch , qui est appelée par apollo-link-rest avec le paramètre d'options credentials: null . Cela provoque cette erreur avec tous les navigateurs, y compris la nouvelle version de chrome.

ma solution rapide pour ma fonction de récupération personnalisée car je n'utilise pas d'informations d'identification est la suivante:

export function fetchWithAuth(url, options = {}) {
  // this fixes apollo-link-rest providing credentials: null options
  const { credentials, ...opt } = options
  return fetch(url, getOptions(opt));
}

Je me cognais également la tête contre le mur, obtenant "Erreur réseau: échec de récupération" empêchant même la requête de s'exécuter avec apollo-link-rest. @JuHwon a raison, cela semble être lié à l'option d'informations d'identification sur le constructeur RestLink. Alors qu'autrefois cela fonctionnait comme facultatif selon la documentation, je ne peux maintenant le faire fonctionner qu'après avoir inclus l'option comme ceci:

const restLink = new RestLink({  
  uri: ${process.env.REACT_APP_API_URL}/,  
  credentials: 'same-origin',  // eg. or credentials: 'omit', etc
});

Devrait être corrigé dans la v0.3.1 - maintenant disponible!

Cette page vous a été utile?
0 / 5 - 0 notes