Debugging von REST Datenquellen in Power BI

Kürzlich war ich bei der Erstellung eines Power BI-Berichts mit einer REST API-Datenquelle beteiligt. In diesem Beitrag zeige ich Ihnen, welche Tools mir das Arbeiten mit REST-Services erleichtert haben.

Die Fehlermeldung

Um auf den REST-Service zugreifen zu können, mussten wir zuerst ein Token erstellen und dieses im HTTP-Header an den Service zu übergeben. Wir haben den Rat hier befolgt, um dies in Power BI direkt zu erreichen aber es hat nicht funktioniert und wir haben irgendwann immer die folgende Fehlermeldung erhalten: “Specified value has invalid HTTP Header characters”

PBIErrorREST

Meines Erachtens ist Power BI ziemlich intransparent, was hinter den Kulissen passiert. Ich wollte also zuerst wissen, ob der REST-Service wie erwartet funktioniert.

Testen des REST-Services ausserhalb von Power BI

Es gibt verschiedene Möglichkeiten, REST abzurufen. Ich erkläre hier zwei davon.

PowerShell

Bei einer Installation mit wenig Platzbedarf wird PowerShell verwendet. Mit diesem Befehl können Sie eine REST-Anforderung senden und das Ergebnis abrufen:
Invoke-RestMethod -Uri <URL> -Body (‘{“systemId”: “it-logix”, “apiToken”: “abcd”}’) -Method POST

SoapUI

Ich finde ein Nicht-Befehlszeichen-Tool, wie zum Beispiel SoapUI oder Postman, praktischer.

Mit SoapUI konnte ich nachweisen, dass der REST-Service wie erwartet funktioniert. Im zweiten Screenshot auf der rechten Seite sehe ich die aktuellen Daten, welche vom REST-Service zurückgegeben wurden.

SOAPUI

SOAPUI_Response

Aber warum sollte Power BI trotzdem eine Fehlermeldung generieren?

Mit Fiddler herausfinden, was hinter den Kulissen von Power BI passiert

Als ich die Fehlermeldung sah, war meine erste Vermutung, dass etwas mit dem Anforderungsheader in Power Query nicht stimmt. Um Licht ins Dunkle zu bringen, benutzte ich Fiddler. Fiddler verknüpft sich mit dem gesamten HTTP-Verkehr auf Ihrem Computer und macht ihn für Sie sichtbar, damit Sie ihn analysieren können.

Der Power BI-Verkehr ist im Prozess microsoft.mashup zu finden.

Fiddler1

Zu meiner Verwunderung stellte ich fest, dass Power BI den REST-Service erfolgreich aufgerufen hat, einschliesslich des Abrufs der korrekten Daten, ähnlich wie in SoapUI. Aber warum sollte Power BI trotzdem eine Fehlermeldung generieren?

Vergleichen Sie mit einem generischen REST-Service und lösen Sie das Rätsel

Wie immer in einem Debugging-Prozess ist es hilfreich ein zweites Beispiel zu haben, um zu überprüfen, ob ein Fehler generisch oder spezifisch ist. Dafür benutzte ich JSON Placeholder. Hier hat der Datenimport nach Power BI wunderbar funktioniert. Wieder mit Fiddler habe ich mir den Antwortheader angesehen. Ich habe den Header des generischen Services mit demjenigen in meinem Projekt verglichen. Sehen Sie es?

JSONResponse1
HTTP-Antwortheader des REST-Services
JSONResponse2
HTTP-Antwortheader des JSON-Platzhalterservices

Schliesslich haben wir den REST-Service-Entwickler gebeten, den Header, welcher mit einem Apostroph beginnt, zu löschen und plötzlich funktionierte es in Power BI :-).

(Dieser Beitrag wurde von meinem Englischen Blog hier übernommen und ins Deutsche übersetzt)

Schreibe einen Kommentar

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