Entwickeln mithilfe der REST-APIs für Power BI-BerichtsserverDevelop with the REST APIs for Power BI Report Server

Power BI Report Server unterstützt REST-APIs (Representational State Transfer).Power BI Report Server support Representational State Transfer (REST) APIs. Die REST-APIs sind Dienstendpunkte, die eine Reihe von HTTP-Vorgängen (Methoden) unterstützen, die Erstellungs-, Abruf-, Aktualisierungs- oder Löschzugriff auf Ressourcen in einem Berichtsserver bieten.The REST APIs are service endpoints that support a set of HTTP operations (methods), which provide create, retrieve, update, or delete access for resources within a report server.

Die REST-API bietet programmgesteuerten Zugriff auf die Objekte in einem Katalog für Power BI-Berichtsserver.The REST API provides programmatic access to the objects in a Power BI Report Server catalog. Beispiele für Objekte sind Ordner, Berichte, KPIs, Datenquellen, Datasets, Aktualisierungspläne, Abonnements und vieles mehr.Examples of objects are folders, reports, KPIs, data sources, datasets, refresh plans, subscriptions, and more. Mit der REST-API können Sie beispielsweise durch die Ordnerhierarchie navigieren, den Inhalt eines Ordners durchsuchen oder eine Berichtsdefinition herunterladen.Using the REST API, you can, for example, navigate the folder hierarchy, discover the contents of a folder, or download a report definition. Sie können auch Objekte erstellen, aktualisieren und löschen.You can also create, update, and delete objects. Beispiele für das Arbeiten mit Objekten sind das Hochladen eines Berichts, das Ausführen eines Aktualisierungsplans, das Löschen eines Ordners usw.Examples of working with objects are upload a report, execute a refresh plan, delete a folder, and so on.

Komponenten einer REST-API-Anforderung/-AntwortComponents of a REST API request/response

Ein REST API-Anforderungs-/Antwortpaar kann in fünf Komponenten unterteilt werden:A REST API request/response pair can be separated into five components:

  • Den Anforderungs-URI, der aus Folgendem besteht: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}.The request URI, which consists of: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}. Der Anforderungs-URI ist zwar im Nachrichtenheader der Anforderung enthalten, er wird jedoch hier separat aufgerufen, da die meisten Sprachen und Frameworks erfordern, dass er separat von der Anforderungsnachricht übergeben wird.Although the request URI is included in the request message header, we call it out separately here because most languages or frameworks require you to pass it separately from the request message.

    • URI-Schema: Gibt das Protokoll an, mit dem die Anforderung übertragen wird.URI scheme: Indicates the protocol used to transmit the request. Beispiele sind http und https.For example, http or https.
    • URI-Host: Gibt den Domänennamen oder die IP-Adresse des Servers an, auf dem der REST-Dienstendpunkt gehostet wird, beispielsweise myserver.contoso.com.URI host: Specifies the domain name or IP address of the server where the REST service endpoint is hosted, such as myserver.contoso.com.
    • Ressourcenpfad: Gibt die Ressource oder die Ressourcensammlung an, die mehrere Segmente enthalten, anhand derer der Dienst die Auswahl der betreffenden Ressourcen bestimmt.Resource path: Specifies the resource or resource collection, which may include multiple segments used by the service in determining the selection of those resources. Beispiel: CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties kann verwendet werden, um die angegebenen Eigenschaften für das CatalogItem abzurufen.For example: CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties can be used to get the specified properties for the CatalogItem.
    • Abfragezeichenfolge (optional): Gibt zusätzliche einfache Parameter an, z.B. die API-Version oder die Ressourcenauswahlkriterien.Query string (optional): Provides additional simple parameters, such as the API version or resource selection criteria.
  • Headerfelder der HTTP-Anforderungsnachricht:HTTP request message header fields:

    • Eine erforderliche HTTP-Methode (die auch als Vorgang oder Verb bezeichnet wird), die dem Dienst den Typ des angeforderten Vorgangs mitteilt.A required HTTP method (also known as an operation or verb), which tells the service what type of operation you are requesting. Reporting Services-REST-APIs unterstützen DELETE-, GET-, HEAD-, PUT-, POST- und PATCH-Methoden.Reporting Services REST APIs support DELETE, GET, HEAD, PUT, POST, and PATCH methods.
    • Optionale zusätzliche Headerfelder, die jeweils durch die angegebene URI- und HTTP-Methode gefordert werden.Optional additional header fields, as required by the specified URI and HTTP method.
  • Optionale Felder für den HTTP-Anforderungsnachrichtentext, um den URI- und HTTP-Vorgang zu unterstützen.Optional HTTP request message body fields, to support the URI and HTTP operation. POST-Vorgänge enthalten beispielsweise MIME-codierte Objekte, die als komplexe Parameter übergeben werden.For example, POST operations contain MIME-encoded objects that are passed as complex parameters. Für POST- oder PUT-Vorgänge muss auch der MIME-Codierungstyp für den Text im Content-type-Anforderungsheader angegeben werden.For POST or PUT operations, the MIME-encoding type for the body should be specified in the Content-type request header as well. Für einige Dienste muss ein bestimmter MIME-Typ verwendet werden, z.B. application/json.Some services require you to use a specific MIME type, such as application/json.
  • Felder des HTTP-Anforderungsnachrichtenheaders:HTTP response message header fields:

    • Ein HTTP-Statuscode, der 2xx Erfolgscodes bis zu 4xx oder 5xx Fehlercodes enthalten kann.An HTTP status code, ranging from 2xx success codes to 4xx or 5xx error codes. Alternativ kann ein vom Dienst definierter Statuscode zurückgegeben werden, entsprechend der Angabe in der API-Dokumentation.Alternatively, a service-defined status code may be returned, as indicated in the API documentation.
    • Optionale zusätzliche Headerfelder, die jeweils zum Unterstützen der Antwort auf die Anforderung erforderlich sein können, z.B. ein Content-type-Antwortheader.Optional additional header fields, as required to support the request's response, such as a Content-type response header.
  • Optionale Felder für den HTTP-Antwortnachrichtentext:Optional HTTP response message body fields:

    • MIME-codierte Antwortobjekte werden im HTTP-Antworttext zurückgegeben, z.B. eine Antwort einer GET-Methode, die Daten zurückgibt.MIME-encoded response objects are returned in the HTTP response body, such as a response from a GET method that is returning data. Normalerweise werden diese Objekte in einem strukturierten Format wie JSON oder XML zurückgegeben, entsprechend der Angabe im Content-type-Antwortheader.Typically, these objects are returned in a structured format such as JSON or XML, as indicated by the Content-type response header.

API-DokumentationAPI documentation

Eine moderne REST-API benötigt eine moderne API-Dokumentation.A modern REST API calls for modern API documentation. Die REST-API baut auf der OpenAPI-Spezifikation (auch bezeichnet alsThe REST API is built on the OpenAPI specification (a.k.a. Swagger-Spezifikation) auf, und die Dokumentation ist verfügbar auf SwaggerHub.the swagger specification) and documentation is available on SwaggerHub. Über das Dokumentieren der API hinaus trägt SwaggerHub zum Generieren einer Clientbibliothek in der Sprache Ihrer Wahl bei – JavaScript, TypeScript, C#, Java, Python, Ruby usw.Beyond documenting the API, SwaggerHub helps generate a client library in the language of choice – JavaScript, TypeScript, C#, Java, Python, Ruby, and more.

Testen von API-AufrufenTesting API calls

Ein Tool zum Testen von HTTP-Anforderungs-/Antwortnachrichten ist Fiddler.A tool for testing HTTP request/response messages is Fiddler. Fiddler ist ein kostenloser Webdebugproxy, der Ihre REST-Anforderungen abfangen kann, wodurch die HTTP-Anforderungs-/Antwortnachrichten auf einfache Weise diagnostiziert werden können.Fiddler is a free web debugging proxy that can intercept your REST requests, making it easy to diagnose the HTTP request/ response messages.

Nächste SchritteNext steps

Informieren Sie sich über die verfügbaren APIs auf SwaggerHub.Review the available APIs over on SwaggerHub.

Beispiele sind auf GitHub verfügbar.Samples are available on GitHub. Das Beispiel enthält eine HTML5-App, die auf TypeScript, React und webpack aufbaut, sowie ein PowerShell-Beispiel.The sample includes an HTML5 app built on TypeScript, React, and webpack along with a PowerShell example.

Weitere Fragen?More questions? Stellen Sie Ihre Frage in der Power BI-Community.Try asking the Power BI Community