Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accès et documentation de l'API #645

Open
lakonis opened this issue Oct 19, 2022 · 4 comments
Open

Accès et documentation de l'API #645

lakonis opened this issue Oct 19, 2022 · 4 comments

Comments

@lakonis
Copy link
Member

lakonis commented Oct 19, 2022

Bonjour, y a t il une minidocumentation de l'API GraphQL pour l'utiliser ? Est-elle d'ors-à-déjà ouverte à l'extérieur ?
Merci par avance.

@antoinentl
Copy link
Member

@Mogztter Suite à la discussion d'hier nous ne sommes pas certains d'avoir compris pourquoi le GET n'est pas ouvert, et quel problème cela poserait de l'ouvrir. Dans le cadre de plusieurs expérimentations nous souhaiterions accéder aux données de Stylo via l'API, cela serait possible ? (Plus tard il faudra documenter cette API mais c'est une autre question.)

@thom4parisot
Copy link
Member

thom4parisot commented Oct 19, 2022

Oui c'est possible, grâce à #483 et #480.

GraphQL ne s'utilise qu'en POST (par design du protocole). L'API est autodocumentée en pointant un outil comme GraphQL Playground (idem, par design du protocole) et en lui indiquant l'endpoint https://stylo.huma-num.fr/graphql.

L'entête "Authorization" est constituée de la forme Bearer $ApiKey$ApiKey est à remplacer par la valeur qui se trouve dans le champ "API Key" du profil.

image

@antoinentl
Copy link
Member

Merci pour les réponses @thom4parisot !
Le champ API Key contient quelque chose uniquement en se connectant sur stylo-dev.huma-num.fr avec un compte classique (pas un compte Huma-Num), est-ce qu'il est possible de rendre ce champ disponible partout : en production (sur stylo.huma-num:fr) pour tous les types de comptes (classiques et Huma-Num) ?

@antoinentl
Copy link
Member

@lakonis Tu peux tester des choses :

  • avec la version stylo-dev.huma-num.fr pour l'instant ;
  • avec un compte classique (pas Huma-Num) ;
  • comme l'explique @thom4parisot l'API est autodocumentée.

Voici un exemple d'une requête Python pour récupérer la liste des articles d'un compte qui fonctionne (testée par @marviro), j'ai remplacée sa clef API des blablabla :

import requests
import json


accessToken = "blablabla"

endpoint = "https://stylo-dev.huma-num.fr/graphql"
headers = {"Authorization": f"Bearer {accessToken}"}

query = """

{
  user {
    articles {
      _id
    }
  }
}

"""

r = requests.post(endpoint, json={"query": query}, headers=headers)
if r.status_code == 200:
    print(json.dumps(r.json(), indent=2))
else:
    raise Exception(f"Query failed to run with a {r.status_code}.")

Et pour récupérer les 3 sources d'un article à partir d'un ID :

{
  article(article:"5ad502e03a311b110057dbea"){
    title
    contributors{user{displayName}}
    workingVersion{md yaml bib}
  } 
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants