Hoppa till huvudinnehåll

Lektion 3.5 Postman

Postman är en grafisk HTTP-klient för att utforska och anropa IoT-plattformens REST-API - logga in, läsa enheter, skicka data och köra sparade förfrågningssamlingar. I denna lektion autentiserar du dig, läser dina enheter, skickar ett värde och (valfritt) massimporterar tidsserier.

Det fullständiga API:et är dokumenterat i Swagger (https://beta.yggio.net/swagger).

Innan du börjar​

  • Installera Postman.
  • Ett IoT-plattformskonto (användarnamn + lösenord).
  • Valfritt: skapa en Postman-miljö med variablerna baseUrl = https://beta.yggio.net och (senare) token, så att förfrågningarna läser {{baseUrl}} och {{token}}.

Övning 1 - Hämta en åtkomsttoken​

  1. Ny förfrågan → POST {{baseUrl}}/api/auth/local.
  2. Body → raw → JSON:
    { "username": "YOUR_USERNAME", "password": "YOUR_PASSWORD" }
  3. Send. Svaret innehåller en token. Kopiera den (eller, på fliken Tests, spara den automatiskt: pm.environment.set("token", pm.response.json().token)).

Alla autentiserade anrop använder headern Authorization: Bearer <token>.

Övning 2 - Lista dina enheter​

  1. Ny förfrågan → GET {{baseUrl}}/api/iotnodes.
  2. Headers: Authorization: Bearer {{token}}.
  3. Send - du får alla enheter med sina aktuella fält. Lägg till en fråga för att filtrera, t.ex. {{baseUrl}}/api/iotnodes?q=temperature för enheter som har ett temperature-fält.

Övning 3 - Skicka ett värde till en generisk enhet​

  1. Skapa en generisk enhet i IoT-plattformen med ett secret (se Lektion 2.3). Secretet är en API-nyckel
    • håll den privat.
  2. Ny förfrågan → POST {{baseUrl}}/http-push/generic?identifier=secret.
  3. Headers: Content-Type: application/json.
  4. Body → raw → JSON (inkludera secret):
    { "secret": "YOURDEVICESECRET", "temperature": 22 }
  5. Send - enheten uppdateras i IoT-plattformen. (Denna endpoint använder enhetens secret, inte Bearer-token.)

Övning 4 - Massimportera tidsserier från en CSV (valfritt)​

IoT-plattformen levererar en färdig Postman-samling som läser en CSV och skickar varje rad som en tidsstämplad avläsning - se Lektion 1.4 för den fullständiga genomgången. I korthet:

  1. Importera CSV-importsamlingen.
  2. Lägg till ett tillfälligt secret på målenheten via PUT {{baseUrl}}/api/iotnodes/{_id}.
  3. Peka samlingen på din CSV och sätt secret i förfrågningens body, kör sedan samlingen (Run).
  4. Ta bort det tillfälliga secretet efteråt (PUT …/api/iotnodes/{_id} med { "secret": "$unset" }).

⚠️ Importerad tidsseriedata kan inte ändras eller tas bort - testa först med en liten fil.

Vad du lärde dig​

  • Hur man hämtar en token från POST /api/auth/local och använder Authorization: Bearer.
  • Hur man läser enheter (GET /api/iotnodes) och skickar data (POST /http-push/generic).
  • Var man hittar samlingen för CSV-tidsserieimport.

Vart härnäst​