Cómo conectar datos a Streamr en 5 minutos (1 de 3)

Esta es una mini-serie de publicaciones de blog sobre integración de datos para ayudar a nuestros usuarios y proveedores de Marketplace a bordo. Los dos primeros son técnicos, mientras que el tercero lo puede hacer prácticamente cualquier persona.

  1. Cómo conectar datos a Streamr en 5 minutos
  2. Tres patrones para integrar sus datos a Streamr
  3. Crear un producto para Streamr Data Marketplace

En este tutorial, aprenderá cómo enviar datos en tiempo real a Streams que existen en la red Streamr. Utilizará la interfaz de usuario para crear un flujo, luego le enviará puntos de datos utilizando la biblioteca cliente Streamr JavaScript. También veremos cómo hacer lo mismo desde cualquier idioma al hacer las llamadas a la API directamente.

Entendiendo Streams y eventos

Los datos en Streamr consisten en Streams (temas), que contienen una secuencia ordenada de eventos (puntos de datos con marca de tiempo). Las cargas útiles de eventos son objetos JSON o, en otras palabras, un conjunto de pares clave-valor. Aquí hay un evento de ejemplo con algunas lecturas de sensores:

{
  "temperatura": 65,4,
  "humedad": 82,
  "sensorID": "sauna"
}

Creando tu primera transmisión

  1. Inicie sesión en www.streamr.com o regístrese si no tiene una cuenta.
  2. Desde la navegación principal, haga clic en "Streams".
  3. Haga clic en el botón "Crear secuencia".
  4. Déle a su Stream un nombre y una descripción, p. "Mi secuencia de prueba".
  5. Presione el botón "Siguiente". ¡Hecho! Verás esto:

Tome nota de dónde encontrar su ID de Stream, en un círculo arriba en rojo. Lo necesitarás pronto.

Encontrar sus claves API

Antes de que pueda producir eventos para su nuevo Stream brillante a través de la API, necesita una clave para autenticarse en la API:

  1. Desde la navegación principal, haga clic en el ícono de Configuración (rueda dentada) y seleccione "Perfil" (o simplemente haga clic aquí).
  2. Encuentra la sección "Claves API".
  3. En la entrada "Nombre de clave", escriba un nombre para una nueva clave como "Tutorial" y presione el botón "+". Luego puede copiar la clave en el portapapeles presionando el botón copiar:

Produciendo eventos a Streams

La forma más fácil de interactuar con la API es usar el cliente JavaScript, que funciona en node.js y en el navegador. Las bibliotecas del cliente para otros idiomas están en la hoja de ruta.

También puedes probarlo localmente en tu navegador. Simplemente abra JS Bin (en la foto a continuación) y reemplace MY-STREAM-ID y MY-API-KEY con su ID de transmisión y clave API. ¡Su navegador comenzará a producir datos para su Stream!

Debería ver los mensajes "Enviados correctamente: ..." en JS Bin, y mientras JS Bin esté abierto, aparecerán nuevos puntos de datos en tiempo real en la sección "Eventos recientes" en su página de Stream:

¡Felicitaciones, está enviando datos con éxito a Stream! Aunque el ejemplo JS Bin se ejecuta localmente en su navegador, continúe y elimine la clave API "Tutorial" en la página Perfil, por si acaso.

Usando streamr-client en node.js

El cliente funciona de manera similar en node.js. En su proyecto, primero instale la biblioteca del cliente:

npm install --save streamr-client

Luego, creemos un pequeño script node.js que envíe un evento a su Stream (nuevamente, reemplace MY-STREAM-ID y MY-API-KEY con su Stream ID y su clave API):

const StreamrClient = require ('streamr-client')
const STREAM_ID = 'MI-ID DE STREAM'
const API_KEY = 'MI-API-KEY'
// Cree el cliente y proporcione la clave API para usar de forma predeterminada
cliente const = nuevo StreamrClient ({
    apiKey: API_KEY
})
// Aquí está el evento que enviaremos
const msg = {
    Hola Mundo',
    random: Math.random ()
}
// Produce el evento a Stream
client.produceToStream (STREAM_ID, msg)
    .then (() => console.log ('Enviado correctamente:', mensaje)
    .catch ((err) => console.error (err))

Tenga en cuenta que la biblioteca requiere node.js ≥ 8. ¡Cuando ejecute lo anterior, un nuevo evento debería aparecer inmediatamente en "Eventos recientes" en su página Stream!

¿Qué pasa si mi aplicación no está en JavaScript?

Puede interactuar con la API de Streamr utilizando cualquier biblioteca HTTP de su elección. Encontrará todos los detalles en los documentos de la API, pero aquí hay un breve resumen:

  • Realizará solicitudes HTTP POST a una URL, que contiene su ID de transmisión:
https://www.streamr.com/api/v1/streams/MY-STREAM-ID/data
  • El cuerpo de la solicitud será su carga de datos en JSON
  • Agregue su clave API a los encabezados HTTP de la siguiente manera:
Autorización: token MY-API-KEY

Así es como se vería una solicitud de prueba en la fabulosa aplicación Postman, con la URL y el encabezado de autorización establecidos:

Y el evento JSON como el cuerpo de solicitud "sin procesar":

¡Incluso puedes enviar un evento con curl desde la línea de comandos! Aquí hay un ejemplo:

curl -i -X ​​POST -H "Autorización: token MY-API-KEY" -d "{\" hello \ ": \" world \ "}" https://www.streamr.com/api/v1/streams / MY-STREAM-ID / data

Bonificación: configurar la transmisión

Para facilitarle a usted y a otros el uso de Stream, puede configurar su configuración de campo. Estos son metadatos opcionales que describen la estructura de los eventos, es decir, qué campos están presentes en las cargas útiles. Los campos se pueden detectar automáticamente en función de los datos que ya produjo.

Haga clic en este botón en su página de Stream:

Luego presione el botón "Autodetect". Debería ver aparecer los campos en su evento más reciente. Presione "Guardar". ¡Hecho! Ahora el Stream se puede usar para construir cosas en el Editor, por ejemplo.

¿Qué sigue?

Ahora que ha aprendido los conceptos básicos, la próxima publicación explicará tres patrones diferentes para la integración de datos:

1. Empujando desde la fuente
2. Puente desde una fuente de transmisión
3. Puente mediante sondeo de una fuente

Lo que logró en este tutorial fue más cercano a la opción 1, que supone que tiene acceso a nuevos puntos de datos en una pieza de software bajo su control. A veces, este no es el caso; por ejemplo, sus datos pueden primero forzarse en la nube de un proveedor de dispositivos, desde donde debe buscarlos y luego reenviarlos a Streamr. Este tipo de escenario será explorado en la próxima publicación.

Finalmente, en la tercera publicación, veremos cómo convertir los Streams que ha creado en Productos en Streamr Marketplace. Esto le permite compartir sus transmisiones de forma gratuita o licenciarlas a otros por un pago.

Si encuentra algún problema, no dude en marcar uno de nuestros mods en nuestros canales Telegram y Reddit.