Simplified Verification API

Je viens de réaliser une POC (Preuve de concept) dans Duniterpy pour faire des requêtes GraphQL.
Ca fonctionne du tonnerre sur le site de test https://swapi.graph.cool/

Je vais décrire les Endpoints dediés dans la RFC0003

GraphQL peut aussi gérer des “subscriptions” si on se connecte en Websocket. Comme en BMA !

Pour vérifier la validité des requêtes sur le client, il faut un fichier Schema. Celui-ci peut être un fichier local “fichier.graphql” ou importé directement depuis l’api par un système d’introspection. Ce qui veut dire que pour avoir la documentation de l’api, on peut juste interroger celle-ci. Cela évite de mettre à jour une documentation à chaque évolution de l’api.

Pour suivre l’avancement de Duniterpy, voir le tableau d’avancement des demandes.

3 Likes

hoooo, comment fait tu pour avoir deux belles colonnes To Do et Doing ?

Je ne sais pas, c’était comme ça quand j’ai testé le menu tableau et j’étais super content ! :stuck_out_tongue:

Tu as un menu “Add list” pour ajouter une colonne. Chaque colonne représentant un “label”, il te faudra peut-être créer les labels “todo” et “doing”.

1 Like

Donc tu peux demander tous les champs pour une vérification, et seulement quelques-uns quand tu as un autre but.

2 Likes

Oui, tu as raison, de plus, je peux demander le document sous forme raw pour vérification. Tout cela, je l’avais noté dans la RFC puis oublié…

Donc tout va bien.

Mise à jour de la RFC003 avec :

  • Les endpoints GVA.
  • Le schéma GraphQL de l’API (un début avec node/summary et node/sandoxes).

Ces infos permettent normalement de pouvoir commencer une implémentation côté serveur.

A suivre, ajout d’une “mutation” dans le schéma pour l’envoi d’un document…

2 Likes

J’ai regardé ce document, quelques retours :

  • l’information isOutdistanced ne devrait pas être obligatoire, car vraiment très couteuse (laisser l’implémentation libre de retourner cette valeur ou non)
  • la RFC n’a pas besoin de détailler la stratégie choisie par l’implémentation en termes de base de données.
  • pour les Merkle Trees, c’est encore en réflexion n’est-ce pas ?

Oui, en fait tu peux zapper toute la première partie qui est une base de réflexion et attaquer à partir des Endpoints et du schéma.

Je vais modifier la RFC selon tes retours. C’est ma première RFC, et elle est en WIP. Toute proposition d’amélioration est la bienvenue. Le but est surtout qu’elle nous soit utile et la plus compréhensible possible.

@elois, tu as fait comment pour avoir une table des matières dans la RFC sur WS2Pv1 ?

regarde le source markdown :wink:

Ben justement je l’ai regardé et… rien !

Pas de tag magique du genre {TOC} ou autre ! Tous les liens à la main !
Sachant qu’il n’y a pas de boutons “lien” comme sur le forum pour faire un lien facilement dans le markdown, et après ta réponse, je comprends qu’il faut tout faire “à la main” ??!!

Pfff… ça va être une fatigue… :sweat:

Non non, je sais que @Inso l’a fait sur le wiki (ou autre) du site web duniter.org.

Si tu cherches TOC dans les sources, tu devrais le trouver.

La réponse est là :slight_smile:

Pour faire court : c’est pas encore supporté dans les pages md des dépôts.

Ben oui, j’ai quinze onglets d’ouverts dont cette page et la conclusion est terrible. @elois s’est tout cogné à la main… !!

Bon ben moi je le ferai quand la RFC sera terminée… Héhé, ça me laisse de la marge… :wink:

N’empêche le bouton “link” qui ajoute [texte](url) manque cruellement dans gitlab quand on édite un fichier .md, même avec le WebIDE.

2 Likes

Au pire, à la fin les RFC ont les mettra dans le wiki une fois validées. Et là tu auras ta ToC tant désirée :smiley:

1 Like

Sinon tu copies/colles avec le TOC dans un éditeur où ça fonctionne, puis tu n’auras qu’à copier le résultat en remplaçant les URL par celle qui te convient.

2 Likes

En effet m’enfin a coup de copier coller ça va vite et surtout je l’ai fait au fur et a mesure, chaque fois que je créer une nouvelle rubrique je la copie dans le sommaire puis j’adapte la syntaxe, ça prend 30sec par rubrique :wink:

Merci à tous pour vos conseils. Du coup c’est fait ! :sunglasses:

2 Likes

Oops, le schéma graphql était incorrect.

Je l’ai intégré dans duniterpy 0.6.0 et fait une vérification avec la librairie python graphql-core.

Elle me permet de vérifier l’intégrité du schéma.

Aussi, au niveau transport, les subscriptions doivent se faire sur une URL différente des requêtes GraphQL classiques pour une API sur HTTP.

Exemple :

1 Like

Du coup pour les endpoints GVA, il en faut deux de plus pour les souscriptions ? Ou bien je rajoute juste le paramètre “path” sur le endpoint non sécurisé, et on peut utiliser le même endpoint avec un path différent ?