Entwickeln mit REST-APIs für Reporting Services

Gilt für: SQL Server Reporting Services (2017 und höher) ❌ Power BI-Berichtsserver

Microsoft SQL Server 2017 Reporting Services unterstützen Representational State Transfer-APIs (REST). Diese REST-APIs sind Dienstendpunkte, die verschiedene HTTP-Vorgänge (Methoden) unterstützen, die Zugriff auf Ressourcen in einem Berichtsserver herstellen, abrufen, aktualisieren oder löschen.

Die REST-API stellt programmgesteuerten Zugriff auf die Objekte in einem SQL Server 2017 Reporting Services-Berichtsserverkatalog bereit. Bei diesen Objekten handelt es sich beispielsweise um Ordner, Berichte, KPIs, Datenquellen, Datasets, Aktualisierungspläne, Abonnements, etc. Mithilfe der REST-API können Sie z.B. die Ordnerhierarchie navigieren, die Inhalte eines Ordners ermitteln oder eine Berichtsdefinition herunterladen. Außerdem können Sie Objekte erstellen, aktualisieren und löschen. Die Objekte unterstützen Sie u.a. bei dem Upload von Berichten, dem Ausführen eines Aktualisierungsplans oder dem Löschen eines Ordners.

Hinweis

Informationen zum Anzeigen und Löschen von personenbezogenen Daten finden Sie im Leitfaden von Microsoft auf der Website zu den Windows-Datensubjektanforderungen für die DSGVO. Allgemeine Informationen über die DSGVO finden Sie im Abschnitt zur DSGVO im Service Trust-Portal.

Komponenten einer REST-API-Anforderung/Antwort

Ein REST-API-Anforderung/Antwort-Paar kann in fünf Komponenten gegliedert werden:

  • Der Anforderungs-URI, der aus {URI-scheme} :// {URI-host} / {resource-path} ? {query-string} besteht. Obwohl der Header der Anforderungsnachricht den Anforderungs-URI enthält, erwähnen wir ihn an dieser Stelle extra, da es für viele Sprachen und Frameworks erforderlich ist, diesen separat der Anforderungsnachricht zu entnehmen.

    • URI-Schema: gibt das Protokoll an, das zum Übertragen der Anforderung verwendet wird. Zum Beispiel: http oder https.
    • URI-Host: gibt den Domänennamen oder die IP-Adresse des Servers an, auf dem die REST-Dienstendpunkte gehostet werden. Zum Beispiel: myserver.contoso.com.
    • Ressourcenpfad: gibt die Ressource oder die Ressourcenauflistung an, die möglicherweise mehrere Segmente enthalten, die vom Dienst zur Bestimmung der Auswahl dieser Ressourcen verwendet werden. Beispielsweise kann CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties verwendet werden, um angegebene Eigenschaften für CatalogItem zu verwenden.
    • Abfragezeichenfolge (optional): stellt zusätzliche, einfache Parameter wie die API-Version oder die Kriterien der Ressourcenauswahl bereit.
  • Headerfelder für HTTP-Anforderungsnachrichten:

    • Eine erforderliche HTTP-Methode (auch als Vorgang oder Verb bezeichnet), die dem Dienst mitteilt, welche Art von Vorgang Sie anfordern. Reporting Services REST-APIs unterstützen die Methoden DELETE, GET, HEAD, PUT, POST und PATCH (Löschen, Abrufen, Kopfteil, Platzieren, Bereitstellen und Reparieren).
    • Zusätzliche optionale Headerfelder, die für den angegebenen URI und HTTP-Methode erforderlich sind.
  • Optionale Nachrichtentextfelder mit HTTP-Antworten zur Unterstützung des URI und des HTTP-Vorgangs. Beispielsweise enthalten POST-Vorgänge MIME-codierte Objekte, die als komplexe Parameter übergeben werden. Für POST- oder PUT-Vorgänge sollte der MIME-codierte Textkörpertyp ebenfalls im Anforderungsheader Content-type angegeben werden. Einige Dienste verlangen die Verwendung eines MIME-Typs wie application/json.

  • Nachrichtenheaderfelder mit HTTP-Anworten:

    • Ein HTTP-Statuscode, der zwischen den Erfolgscodes 2xx und den Fehlercodes 4xx oder 5xx liegt. Stattdessen kann auch, wie in der API-Dokumentation angegeben, ein Statuscode zurückgegeben werden, der für einen Dienst definiert ist.
    • Zusätzliche optionale Headerfelder, die zum Unterstützen der Antwort der Anforderung erforderlich sind, z.B. ein Content-type-Antwortheader.
  • Optionale Nachrichtentextfelder mit HTTP-Antworten:

    • MIME-codierte Antwortobjekte werden im HTTP-Antworttext zurückgegeben, wie z.B. eine Antwort von einer GET-Methode, die Daten zurückgibt. Für gewöhnlich werden diese Objekte in einem strukturierten Format wie JSON oder XML zurückgegeben, wie im Content-type-Antwortheader angegeben.

API-Dokumentation

Eine moderne REST-API benötigt auch eine moderne API-Dokumentation. Die REST-API basiert auf der OpenAPI-Spezifikation (auch Swagger-Spezifikation genannt). Die Dokumentation ist unter SwaggerHub verfügbar. Neben der API-Dokumentation finden Sie auf dem SwaggerHub auch Anweisungen zum Generieren einer Clientbibliothek in der Sprache Ihrer Wahl: JavaScript, TypeScript, C#, Java, Python, Ruby, usw.

REST-API-Aufrufe

Fiddler ist ein Tool zum Testen von HTTP-Anforderungs- bzw. Antwortnachrichten. Fiddler ist ein kostenloser Proxy zum Webdebuggen, der Ihre REST-Anforderungen abfangen kann. Dies vereinfacht die Diagnose von Anforderungs-bzw. Antwortnachrichten.

Nächste Schritte

Prüfen Sie die verfügbaren APIs im SwaggerHub.

Beispiele finden Sie auf demGitHub. Das Beispiel beinhaltet neben einem PowerShell-Beispiel eine HTML5-App, die auf TypeScript, React und Webpack basiert.

Haben Sie dazu Fragen? Stellen Sie eine Frage im Reporting Services-Forum