# Réflexion sur la sortie JSON

**URL:** https://forum.duniter.org/t/reflexion-sur-la-sortie-json/11993
**Category:** R&D
**Tags:** json, graphql
**Created:** [12 February 2024 16:14 UTC](https://forum.duniter.org/t/reflexion-sur-la-sortie-json/11993 "2024-02-12T16:14:11Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [12 February 2024 16:14 UTC](https://forum.duniter.org/t/reflexion-sur-la-sortie-json/11993/1 "2024-02-12T16:14:11Z")

</div>

Le ticket [#14](https://git.duniter.org/clients/rust/gcli-v2s/-/issues/14) de gcli consiste à lui ajouter une sortie json. J’ai commencé par le faire pour une commande (`gcli -o json identity show`) puis je me suis demandé pourquoi on en arrivait là, et voici ce que j’en pense :

- la sortie json est à **destination des machines** plus que des humains
- elle vise donc à être **intégrée à des scripts** , donc à redouter des changements d’API
- pour la plupart des cas, le même résultat pourrait être obtenu avec une **requête graphql en curl**
- la solution précédente est donc vécue comme trop compliquée
- il faudrait répondre à ce besoin d’accéder aux données de manière simple

Ça fait un moment que je pense qu’il faudrait fournir une API JSON similaire à la partie “GET” d’une API REST parce que les gens sont plus habitué à ça et qu’ils seront plus à l’aise pour construire des choses dessus. Créer un outil similaire en ligne de commande intégrable dans un script bash / jq serait une occasion de faire d’une pierre deux coups. L’équivalence pourrait ressembler à ça :

```auto
# --- identité ---
# commande
cli identity 61
[...]
# route HTTP GET dans l'url
/identity/61
[...]

# --- compte ---
# commande
cli account 5CQ8T4qpbYJq7uVsxGPQ5q2df7x3Wa4aRY6HUWMBYjfLZhnn
[...]
# route HTTP GET dans l'url
/account/5CQ8T4qpbYJq7uVsxGPQ5q2df7x3Wa4aRY6HUWMBYjfLZhnn
[...]

```

où `[...]` est le même résultat en JSON. On pourrait versionner cette API pour éviter de casser les scripts. C’est un outil très facile à construire, il suffit de choisir des routes et les requêtes graphql correspondantes. Si quelqu’un veut s’y essayer, il peut essayer avec [Altaïr Graphql](https://forum.duniter.org/t/altair-graphql/11994).

---

_[View the full topic](https://forum.duniter.org/t/reflexion-sur-la-sortie-json/11993)._
