Skip to Content
Mélodium 0.10.1 is now available!
DocsExemplesPipeline HTTP + JSON

Pipeline HTTP + JSON

Source: 04_http_json_pipeline

Récupère une liste de posts depuis l’API publique JSONPlaceholder, parse la réponse JSON et écrit le résultat dans un fichier local. Cet exemple n’utilise aucun modèle avec état — chaque opération est une connexion de dataflow pur ordonnancée par Mélodium au fur et à mesure que les données sont disponibles.

Exécution

melodium run 04_http_json_pipeline/Compo.toml # ou avec un chemin de sortie personnalisé : melodium run 04_http_json_pipeline/Compo.toml --output results.txt

Sortie attendue :

[…] info: pipeline: fetching posts... […] info: pipeline: done

Le fichier results.txt est écrit avec le corps JSON brut de la réponse API.

Fonctionnement

main démarre deux sous-traitements en parallèle dès que startup se déclenche : logFetch journalise un message de statut, et fetchPosts effectue la requête HTTP GET. Une fois le corps de la réponse disponible en tant que Stream<byte>, il s’écoule dans parsePosts.

See in Compositeur Studio

parsePosts est un sous-traitement qui enchaîne quatre opérations en une seule instruction de connexion :

Self.data -> decode.data,text -> toJson.text,json -> unwrapOr.option,value -> toString.value,into -> Self.text

Une fois l’écriture terminée, writePosts.finished déclenche logDone.

Dépendances

[dependencies] std = "0.10.1" # flux de base, journalisation, structures de données http = "0.10.1" # serveur et client HTTP json = "0.10.1" # parsing et sérialisation JSON fs = "0.10.1" # lecture/écriture de fichiers locaux encoding = "0.10.1" # encodage / décodage UTF-8