Documentation - API GraphQL
L’API (Application Programming Interface) permet d’interconnecter Demarches Simplifiées à d’autres systèmes d’information ou d’autres logiciels.
Aujourd’hui l’API est sortante et entrante. Vous pouvez donc aussi bien lire qu’écrire des données dans Démarches Simplifiées.
Elle permet par exemple de récupérer les données au format json pour:
- Construire des tableaux bord afin de piloter le déploiement d’une démarche
- Utiliser Démarches Simplifiées pour ses formulaires et verser les dossiers saisis par les usagers dans votre Système d’Information afin de les instruire vous-même.
- Construire une interface sur mesure pour instruire les dossiers dans votre application
Que vous pourrez ensuite intégrer dans des outils métiers.
- avoir un compte administrateur sur demarches.adullact.org
- avoir une ou plusieurs démarches publiées sur ce compte administrateur
- configurer des jetons GraphQL sur la plateforme DS
La fonctionnalité est activée par défaut dans le code de l’application.
L’API est accessible à l’adresse /api/v2/graphql (cette URL ne peut pas être consultée dans un navigateur web : code HTTP 404 Page Not Found).
Une fois authentifié en tant qu’administrateur disposant d’un jeton, vous pouvez également
accéder à l’éditeur de requêtes en ligne /graphql
(attention, ne confondez pas cette adresse avec celle du
endpoint).
Endpoint: https://demarches.adullact.org/api/v2/graphql
Attention : il est nécessaire d’avoir une accréditation au profil « Administrateur » dans l’application.
Pour configurer le/les jeton(s), vous devez vous rendre sur votre profil utilisateur de votre compte associé à Démarches Simplifiées.
- Sélectionnez « voir mon profil dans le menu de sélection du rôle »
- Une fois sur la page /profil, allez sur l’encart « Jetons d’identification de l’API (token)»
- Cliquez sur « créer un nouveau jeton »
- Définissez le nom et les privilèges de ce jeton (pour une ou plusieurs démarches spécifiques, en lecture ou écriture…) et leur niveau de sécurité
- Validez
Le jeton est alors créé. Avec celui-ci, vous pourrez accéder à l’api et exporter les informations souhaitées dans le périmètre que vous avez établi pour ce jeton.
Ce jeton doit être fourni dans l’en-tête HTTP « Authorization » de la requête.
Authorization: Bearer token=valeur_du_jeton
Pour le service demarches.adullact.org, voici l’URL d’accès à l’Api:
https://demarches.adullact.org/graphql
L’utilisation de l’API permet de récupérer un certain type de données comme par exemple :
- de lister les dossiers d’une démarche
- des informations complètes des dossiers
- les dossiers d’un groupe d’instructeur
- les versions du formulaire par démarche
ou en écriture:
- de changer l’état d’un dossier (accepté, refusé…)
Je souhaite récupérer la liste des dossiers d’une démarche depuis l’API
query exempleListeDossiers($demarcheNumber: Int!) {
demarche(number: $demarcheNumber) {
id
number
state
title
dossiers {
nodes {
number
state
usager {
email
}
traitements {
dateTraitement
state
emailAgentTraitant
}
}
}
}
}
{
"demarcheNumber": 339
}
{
"data": {
"demarche": {
"id": "UHJvY2VkdXJlLTMzOQ==",
"number": 339,
"state": "publiee",
"title": "ADULLACT - Démo n°2 : démarche DS pour les organisations (entreprise, association...)",
"dossiers": {
"nodes": [
{
"number": 12126,
"state": "accepte",
"usager": {
"email": "john.doe@example.org"
},
"traitements": [
{
"dateTraitement": "2022-05-31T12:33:48+02:00",
"state": "en_construction",
"emailAgentTraitant": null
},
{
"dateTraitement": "2022-06-01T11:20:02+02:00",
"state": "en_instruction",
"emailAgentTraitant": "instructeur-1@example.org"
},
{
"dateTraitement": "2022-06-01T11:20:46+02:00",
"state": "accepte",
"emailAgentTraitant": "instructeur-1@example.org"
}
]
},
(...)
]
}
}
}
}
# Jeton DS pour l'API GraphQL
set +o history # désactiver l'historique des lignes de commande
API_JETON="<YOUR_VALID_TOKEN>"
set -o history # activer l'historique des lignes de commande
API_GRAPHQL_URL="https://demarches.adullact.org/api/v2/graphql"
curl -X POST "${API_GRAPHQL_URL}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token=${API_JETON}" \
--data-raw '{"variables":{"demarcheNumber":339}, "query":"query exempleListeDossiers($demarcheNumber: Int!){ demarche(number: $demarcheNumber) { number title dossiers { nodes { number state usager { email } traitements { dateTraitement state emailAgentTraitant }}}}} "}'
https://demarches.adullact.org/graphql
Vous retrouverez une documentation technique plus détaillée sur le site de la DINUM :