Apollo-link-rest: Comment faire des appels vers des URL arbitraires ?

Créé le 16 févr. 2019  ·  7Commentaires  ·  Source: apollographql/apollo-link-rest

Salut,

Existe-t-il un moyen d'appeler des URL arbitraires dans les requêtes ?

La documentation dit que path dans la directive @rest peut prendre un chemin ou une URL complète. Cependant, en passant la requête suivante, j'obtiens des erreurs :

query getFoo {
  foo @rest(type: "Foo", path: "https://foo.com/foo") {
    bar
  }
}
Deprecated: '@rest(path:' contains a ':' colon, this format will be removed in future versions
index.js:1446 [Network error getIP]: Missing parameters to run query, specify it in the query params or use an export directive. (If you need to use ":" inside a variable string make sure to encode the variables properly using `encodeURIComponent`. Alternatively see documentation about using pathBuilder.)

Lorsque je passe ensuite path="${encodeURIComponent('https://foo.com/foo')}" , le lien REST essaie d'atteindre https://[my current url]https%3A%2F%2Ffoo.com%2Ffoo .

pathBuilder ajoute de la même manière mon chemin construit à mon URL d'origine.

La seule option est-elle d'enregistrer chaque URL que votre application appellera dans la configuration du lien REST ? Si c'est le cas, je pense que les documents devraient être mis à jour pour refléter path ne prenant pas les URL complètes.

bug 🐛 help wanted 🛠

Tous les 7 commentaires

Merci d'avoir signalé ce @timhwang21 Il s'agit certainement d'un bug qui a été introduit il y a environ un an.

Je suppose que beaucoup de gens configurent leurs "points de terminaison de base" une fois pour l'ensemble de RestLink, donc je suppose que les gens n'utilisaient pas beaucoup cette fonctionnalité. -- La suppression de cet avertissement et la restauration de la prise en charge des URL complètes dans l'annotation @rest() devraient être assez simples.

Je soutiendrais aider à revoir un PR si quelqu'un veut contribuer au correctif.

Génial, je peux prendre une pause pendant le week-end. @fbartho avez-vous des indications sur quelle partie de la base de code je devrais commencer à regarder en premier? Merci.

@ timhwang21 Malheureusement, nous n'avons vraiment qu'un seul fichier source dans la base de code, ce n'est pas incroyablement long, mais je m'attends à ce que vous deviez changer plusieurs endroits dans le fichier.

J'ai rencontré cela et j'aurais trouvé utile d'autoriser une URL complète dans le chemin ou une autre option pour définir une nouvelle URL, comme url: "https://domain.com/api/path/1" .

@ timhwang21 avez-vous réussi à concocter quelque chose ?

Fwiw voici un petit travail que j'ai fait pour le faire fonctionner en attendant.

  1. Spécifiez un point empty terminaison empty: ' ' .
    image
  2. Utilisez-le comme point de terminaison dans votre requête, voici un exemple de résolution de requêtes en cascade...
    image

C'est à peu près ça.

Je ne l'ai pas fait, nous avons fini par migrer notre service de repos vers GraphQL.

Le lundi 22 juillet 2019 à 9h14, Mat Silva [email protected] a écrit :

J'ai rencontré cela et je trouverais utile d'autoriser une URL complète dans le chemin ou
une autre option pour définir une nouvelle url, comme url : "
https://domain.com/api/path/1 ".

@ timhwang21 https://github.com/timhwang21 avez-vous pu fouetter
quelque chose?

Fwiw voici un petit travail que j'ai fait pour le faire fonctionner en attendant.

  1. Spécifiez un point de terminaison vide dans le fichier config. Notez qu'il existe un réel
    espace vide dans la valeur : ' '.
    [image : image]
    https://user-images.githubusercontent.com/4511972/61635093-c85eba80-ac60-11e9-87aa-eae6cf788e59.png
  2. Utilisez-le comme point de terminaison dans votre requête, voici un exemple de
    résolution des requêtes en cascade...
    [image : image]
    https://user-images.githubusercontent.com/4511972/61635160-f0e6b480-ac60-11e9-8879-e78f0ae4d982.png

C'est à peu près ça.

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/apollographql/apollo-link-rest/issues/192?email_source=notifications&email_token=ABMPWCWNFOUEL4WFA3GSY7TQAWXEZA5CNFSM4GX3BPZ2YY3PNVWWK3TUL52HS4WWWZVREXG43XVMQAWXEZA5CNFSM4GX3BPZ2YY3PNVWWK3TUL52HS4WWWZVREXG43XVMQAWXEZA5CNFSM4GX3BPZ2YY3PNVWWK3TUL52HS4WWWZVREXG43XVBW63LNMVPLO
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ABMPWCVPMVEBZQSMS2CGQQLQAWXEZANCNFSM4GX3BPZQ
.

service de repos à GraphQL.

ouais ça marche aussi :grin:

A rencontré ce problème lors de la consommation d'un mélange d'API de Github, dont certaines ne sont pas encore dans leur API GraphQL. Leur API Rest contient de nombreux champs d'URL absolus que je pourrais exporter et réutiliser, mais la capture : empêche de fonctionner. La solution de contournement de @matsilva consistant à pirater un point de terminaison vide fonctionne cependant pour moi.

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