Comment connecter des données à Streamr en 5 minutes (1 sur 3)

Il s'agit d'une mini-série de billets de blog sur l'intégration des données pour aider nos utilisateurs et les fournisseurs de Marketplace à bord. Les deux premiers sont techniques, alors que le troisième peut être réalisé par quasiment tout le monde.

  1. Comment connecter des données à Streamr en 5 minutes
  2. Trois modèles pour l’intégration de vos données dans Streamr
  3. Création d'un produit pour le marché de données Streamr

Dans ce tutoriel, vous apprendrez à envoyer des données en temps réel aux flux existants sur le réseau Streamr. Vous utiliserez l'interface utilisateur pour créer un flux, puis lui enverrez des points de données à l'aide de la bibliothèque cliente Streamr JavaScript. Nous verrons également comment faire la même chose dans n’importe quelle langue en passant directement les appels d’API.

Comprendre les flux et les événements

Les données dans Streamr sont constituées de flux (rubriques) contenant une séquence d'événements (points de données horodatés). Les données utiles d'événement sont des objets JSON ou, en d'autres termes, un ensemble de paires clé-valeur. Voici un exemple d’événement avec quelques lectures de capteurs:

{
  "température": 65,4,
  "humidité": 82,
  "sensorID": "sauna"
}

Créer votre premier flux

  1. Connectez-vous sur www.streamr.com ou inscrivez-vous si vous n’avez pas de compte.
  2. Dans la navigation principale, cliquez sur «Streams».
  3. Cliquez sur le bouton "Créer un flux".
  4. Donnez à votre Stream un nom et une description, par exemple. "Mon flux de test".
  5. Appuyez sur le bouton “Suivant”. Terminé! Vous verrez ceci:

Notez où trouver votre identifiant de flux, entouré en rouge ci-dessus. Vous en aurez besoin bientôt.

Trouver vos clés API

Avant de pouvoir générer des événements dans votre tout nouveau flux via l'API, vous avez besoin d'une clé pour vous authentifier auprès de l'API:

  1. Dans la navigation principale, cliquez sur l'icône Paramètres (roue dentée), puis sélectionnez «Profil» (ou cliquez simplement ici).
  2. Recherchez la section "Clés de l'API".
  3. Dans l'entrée «Nom de la clé», saisissez un nom pour une nouvelle clé, tel que «Didacticiel», puis appuyez sur le bouton «+». Vous pouvez ensuite copier la clé dans le presse-papiers en appuyant sur le bouton de copie:

Produire des événements en flux

Le moyen le plus simple d'interagir avec l'API consiste à utiliser le client JavaScript, qui fonctionne à la fois dans node.js et dans le navigateur. Les bibliothèques client pour d'autres langues sont dans la feuille de route.

Vous pouvez également l'essayer localement dans votre navigateur. Ouvrez simplement le JS Bin (illustré ci-dessous) et remplacez MY-STREAM-ID et MY-API-KEY par votre ID de flux et votre clé API. Votre navigateur va commencer à produire des données sur votre flux!

Vous devriez voir les messages «Envoyés avec succès:…» dans JS Bin et tant que le JS Bin est ouvert, de nouveaux points de données apparaissent en temps réel dans la section «Événements récents» de votre page Flux:

Félicitations, vous envoyez avec succès des données au Stream! Même si l’exemple JS Bin s’exécute localement dans votre navigateur, continuez et supprimez la clé API «Tutorial» de la page Profile, au cas où.

Utilisation de streamr-client dans node.js

Le client fonctionne de manière similaire dans node.js. Dans votre projet, installez d’abord la bibliothèque cliente:

npm install --save streamr-client

Ensuite, créons un petit script node.js qui envoie un événement à votre flux (remplacez à nouveau MY-STREAM-ID et MY-API-KEY par votre ID de flux et votre clé d’API):

const StreamrClient = require ('streamr-client')
const STREAM_ID = 'MY-STREAM-ID'
const API_KEY = 'MY-API-KEY'
// Crée le client et donne la clé API à utiliser par défaut
const client = new StreamrClient ({
    apiKey: API_KEY
})
// Voici l'événement que nous enverrons
const msg = {
    Bonjour le monde',
    random: Math.random ()
}
// Produire l'événement au flux
client.produceToStream (STREAM_ID, msg)
    .then (() => console.log ('Envoyé avec succès:', msg))
    .catch ((err) => console.error (err))

Notez que la bibliothèque nécessite node.js ≥ 8. Lorsque vous exécutez ce qui précède, un nouvel événement devrait apparaître immédiatement sous «Événements récents» sur la page de votre flux!

Et si mon application n'est pas en JavaScript?

Vous pouvez interagir avec l'API Streamr en utilisant n'importe quelle bibliothèque HTTP de votre choix. Vous trouverez tous les détails dans la documentation de l’API, mais voici un bref aperçu:

  • Vous ferez des requêtes HTTP POST vers une URL contenant votre identifiant de flux:
https://www.streamr.com/api/v1/streams/MY-STREAM-ID/data
  • Le corps de la demande sera votre charge de données en JSON
  • Ajoutez votre clé API aux en-têtes HTTP comme suit:
Autorisation: jeton MY-API-KEY

Voici à quoi ressemblerait une demande de test dans la fabuleuse application Postman, avec les en-têtes URL et Autorisation définis:

Et l'événement JSON en tant que corps de la requête «brute»:

Vous pouvez même envoyer un événement avec curl depuis la ligne de commande! Voici un exemple:

curl -i -X ​​POST -H “Autorisation: jeton MY-API-KEY” -d “{\” hello \ ”: \“ world \ ”}” https://www.streamr.com/api/v1/streams / MY-STREAM-ID / data

Bonus: configurer le flux

Pour faciliter votre utilisation et celle des autres utilisateurs du Stream, vous pouvez configurer sa configuration sur le terrain. Il s’agit de métadonnées facultatives décrivant la structure des événements, c’est-à-dire quels champs sont présents dans les données utiles. Les champs peuvent être détectés automatiquement en fonction des données que vous avez déjà produites.

Cliquez sur ce bouton sur votre page de flux:

Ensuite, appuyez sur le bouton “Autodetect”. Vous devriez voir apparaître les champs de votre événement le plus récent. Appuyez sur "Enregistrer". Terminé! Maintenant, le Stream peut être utilisé pour construire des choses dans l'éditeur, par exemple.

Et ensuite?

Maintenant que vous avez appris les bases, le prochain article expliquera trois modèles différents d’intégration de données:

1. Pousser depuis la source
2. Pontage depuis une source de streaming
3. Passerelle en interrogeant une source

Ce que vous avez accompli dans ce didacticiel était très proche de l'option 1, qui suppose que vous avez accès à de nouveaux points de données dans un logiciel sous votre contrôle. Parfois, ce n’est pas le cas - par exemple, vos données peuvent d’abord se forcer dans le cloud d’un fournisseur de périphériques, à partir duquel vous devez les récupérer, puis les transférer à Streamr. Ce genre de scénario sera exploré dans le prochain post.

Enfin, dans le troisième article, nous verrons comment transformer les flux que vous avez créés en produits sur le marché Streamr. Cela vous permet de partager vos flux gratuitement ou de les concéder sous licence à des tiers pour un paiement.

Si vous rencontrez des problèmes, n'hésitez pas à signaler l'un de nos mods sur nos chaînes Telegram et Reddit.