Postman, ein einfacher Weg zur Analyse von APIs

Einführung

Bei der Vorbereitung des Artikels bin ich auf falsche Antworten des Servers gestoßen. Es schien, dass die Daten, die ich an ThingSpeak schickte, falsch waren. Versuchen wir herauszufinden, wo genau das Problem liegt.

Dazu werden wir das Programm Postman verwenden, mit dem wir ganz einfach eine Anfrage an den Server stellen und eine Antwort erhalten können. Wir können dies auch direkt im Boardcode machen, aber mit dem Programm ist es viel einfacher und schneller. Das spart uns eine Menge Zeit. Aber sehen wir uns erst einmal an, was Postman ist.

Was ist Postman

Postman ist ein leistungsstarkes Werkzeug für die Entwicklung und das Testen von APIs (Application Programming Interface). Hier finden Sie eine Zusammenfassung einiger der wichtigsten Funktionen und Vorteile von Postman:

  • Einfach zu bedienende Schnittstelle: Postman bietet eine benutzerfreundliche und intuitive Schnittstelle. Seine gut strukturierte und einfach zu navigierende Umgebung macht das Testen und Entwickeln von APIs deutlich bequemer.
  • Erstellen von Anfragen: Ermöglicht das schnelle und einfache Erstellen von HTTP-Anfragen mit verschiedenen Methoden (GET, POST, PUT, DELETE usw.), Hinzufügen von Parametern, Kopfzeilen und Anfragebody.
  • Sammlungen: Postman ermöglicht es Ihnen, Anfragen in Sammlungen zu organisieren, was praktisch ist, um Anfragen nach Projekten zu gruppieren und sie mit dem Team zu teilen.
  • Automatisierung und Tests: Integrierte Funktionen zur Erstellung automatisierter Tests mit JavaScript, die eine einfache Überprüfung von API-Antworten ermöglichen.
  • Tools für die Zusammenarbeit: Postman bietet Funktionen für die Zusammenarbeit im Team, einschließlich der gemeinsamen Nutzung von Sammlungen, dem Austausch von Anfragen und Kommentaren.
  • Dokumentation generieren: Sie können für Ihre APIs eine automatische Dokumentation erstellen, die für die Kommunikation mit anderen Entwicklern nützlich ist.
  • Arbeiten mit verschiedenen Formaten: Postman unterstützt die Arbeit mit verschiedenen Datenformaten wie JSON und XML und bietet die Möglichkeit, Daten einfach zu konvertieren und zu verarbeiten.
  • Erweiterbarkeit: Durch ständige Aktualisierungen und Hinzufügen neuer Funktionen bietet Postman Möglichkeiten zur Integration mit verschiedenen Tools und Diensten.

Insgesamt ist Postman ein starkes Werkzeug, das den Prozess der API-Entwicklung, des Testens und der Dokumentation erleichtert. Seine Funktionalität macht es zu einem unverzichtbaren Werkzeug für Entwickler, Tester und alle, die mit APIs arbeiten.

Einrichtung

Sie können Postman von hier installieren. Installieren Sie in den Installationsoptionen den „leichtgewichtigen Client“, ohne dass eine Registrierung erforderlich ist. Für dieses Beispiel brauchen wir keine. Ohne Registrierung kann die Sammlungsfunktion nicht genutzt werden. So sieht der Installationsbildschirm aus:

Wenn Sie auf den Link klicken, wird unser Client sofort geöffnet. Aber sehen wir uns einmal genau an, wo das Problem liegt und warum wir dieses Programm verwenden wollen.

Problem

Wir erhalten einen Fehler in der Zeile, in der wir versuchen, die Werte vom ThingSpeak-Server zu lesen. Dieser Code sollte die letzten beiden Werte der gesendeten Variablen zurückgeben.

String readRequest = "GET /channels/" + channelID + "/fields/" + fieldNumber +                 
 ".json?api_key=" + writeApiKey + "?results=" + numberOfResults + " HTTP/1.1\r\n"      
  + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n";

Wenn Sie die Codezeile im Artikelcode ersetzen, erhalten Sie die folgende Antwort:

HTTP/1.1 400 Bad Request
Date: Sat, 25 Nov 2023 14:23:22 GMT
Content-Type: text/plain; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Status: 400 Bad Request
Cache-Control: no-cache
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 1800
X-Request-Id: 04f74c1d-f9f5-49ea-bf60-608dc10ed62c
Access-Control-Allow-Headers: origin, content-type, X-Requested-With
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS, DELETE, PATCH
X-Frame-Options: SAMEORIGIN
2
-1
0
Closing connection

Der Fehler „400 Bad Request“ zeigt an, dass wir etwas Falsches an den Server senden. Mehr über die verschiedenen HTTP-Antworten können Sie hier lesen. Die Fehlerbeschreibung lautet: „400 Bad Request – Der Server kann oder will die Anfrage nicht bearbeiten, weil er einen Client-Fehler vermutet (z. B. eine fehlerhafte Anfragesyntax, eine ungültige Formatierung der Anfragemeldung oder eine betrügerische Weiterleitung der Anfrage).“ 

Lassen Sie uns Postman verwenden, um die Anfrage zu senden und zu sehen, was passiert. Dazu benötigen wir die Zugangsschlüssel zu ThingSpeak. Diese erhalten wir, indem wir uns auf der Seite anmelden und zu dem Kanal gehen, aus dem wir lesen wollen.

Lassen Sie uns nun die Abfrage in einer für uns bequemen Form umformulieren:

https://api.thingspeak.com/channels/23*****/fields/1.json?api_key=E5**************&results=2

Führen wir es in Postman aus

Als Antwort erhalten wir ziemlich ähnliche Kopfzeilen und einen ähnlichen Text wie beim Board Error.

Aber schauen wir uns doch mal die Seite von  ThingSpeak an. Dort ist die korrekte Abfrage beschrieben, die lautet:

https://api.thingspeak.com/channels/23*****/fields/1.json?api_key=E5**************&results=2

wiederholen wir es in Postman:

Jetzt liefert die Abfrage die richtige Antwort.

Ersetzen wir den falschen Code durch den richtigen.

String readRequest = "GET /channels/" + channelID + "/fields/" + fieldNumber +        
 ".json?api_key=" + writeApiKey + "&results=" + numberOfResults + " HTTP/1.1\r\n"   
 + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n";

Und schon ist der Code an Bord. Wenn wir die serielle Konsole öffnen, erhalten wir:

HTTP/1.1 200 OK
Date: Tue, 28 Nov 2023 20:47:05 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Status: 200 OK
Cache-Control: max-age=7, private
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 1800
X-Request-Id: eac505f1-4a2a-45f6-9ed3-f6f4f6d726ed
Access-Control-Allow-Headers: origin, content-type, X-Requested-With
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS, DELETE, PATCH
ETag: W/"47c716b9756448dc96ac69cf9445b49d"
X-Frame-Options: SAMEORIGIN
1c6
{"channel":{"id":23*****,"name":"ThingSpeak","description":"ThingSpeak demo channel","latitude":"0.0","longitude":"0.0","field1":"Internal temp","created_at":"2023-11-18T14:20:41Z","updated_at":"2023-11-18T14:20:41Z","last_entry_id":77},"feeds":[{"created_at":"2023-11-25T14:35:44Z","entry_id":75,"field1":"39.91"},{"created_at":"2023-11-28T20:46:46Z","entry_id":76,"field1":"43.86"},{"created_at":"2023-11-28T20:47:03Z","entry_id":77,"field1":"40.35"}]}
0

Das ist die richtige Antwort, die wir brauchten.

Kurzes Fazit

Wie Sie sehen können, ist das Debugging mit Postman schnell und einfach. Mit diesem Dienstprogramm können Sie viel Zeit bei der Fehlersuche oder der schnellen Implementierung von Webabfragen sparen, ohne den Code auf ein Board hochzuladen oder zu emulieren. Im Internet finden sich zahlreiche Artikel, die den Prozess genauer beschreiben und weitere Details über das Programm zeigen. Insgesamt ist Postman ein weiteres Tool, das uns helfen kann, schneller zum gewünschten Ergebnis zu kommen.

Spaß am Programmieren!

Comments

No comments yet. Why don’t you start the discussion?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert