Développer avec les API REST pour Power BI Report ServerDevelop with the REST APIs for Power BI Report Server

Power BI Report Server prend en charge les API Representational State Transfer (REST).Power BI Report Server support Representational State Transfer (REST) APIs. Les API REST sont des points de terminaison de service qui prennent en charge un ensemble d’opérations HTTP (méthodes) qui fournissent un accès en création, récupération, mise à jour ou suppression aux ressources à l’intérieur d’un serveur de rapports.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.

L’API REST fournit un accès par programme aux objets dans un catalogue Power BI Report Server.The REST API provides programmatic access to the objects in a Power BI Report Server catalog. Ces objets sont, par exemple, des dossiers, des rapports, des indicateurs de performance clés, des sources de données, des jeux de données, des plans d’actualisation, des abonnements et bien plus encore.Examples of objects are folders, reports, KPIs, data sources, datasets, refresh plans, subscriptions, and more. L’API REST vous permet, par exemple, de parcourir l’arborescence des dossiers, de découvrir le contenu d’un dossier, ou de télécharger une définition de rapport.Using the REST API, you can, for example, navigate the folder hierarchy, discover the contents of a folder, or download a report definition. Elle permet également de créer, mettre à jour et supprimer des objets.You can also create, update, and delete objects. Des exemples d’utilisation d’objets sont le téléchargement d’un rapport, l’exécution d’un plan d’actualisation, la suppression d’un dossier et ainsi de suite.Examples of working with objects are upload a report, execute a refresh plan, delete a folder, and so on.

Composants d’une requête-réponse d’API RESTComponents of a REST API request/response

Une paire requête-réponse (ou demande/réponse) d’API REST peut être divisée en cinq composants :A REST API request/response pair can be separated into five components:

  • L’URI de demande, qui comprend : {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}.The request URI, which consists of: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}. Bien que l’URI de demande soit incluse dans l’en-tête de message de demande, nous l’appelons séparément ici, car la plupart des langages ou infrastructures requiert que vous le passiez séparément du message de demande.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 scheme (schéma d’URI) : indique le protocole utilisé pour transmettre la demande.URI scheme: Indicates the protocol used to transmit the request. Par exemple, http ou https.For example, http or https.
    • URI host (hôte d’URI) : spécifie le nom de domaine ou l’adresse IP du serveur sur lequel le point de terminaison de service REST est hébergé, tel que 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.
    • Resource path (chemin d’accès de la ressource) : spécifie la ressource ou collection de ressources, qui peut inclure plusieurs segments que le service utilise dans la détermination de la sélection de ces ressources.Resource path: Specifies the resource or resource collection, which may include multiple segments used by the service in determining the selection of those resources. Par exemple : CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties peut être utilisé pour obtenir les propriétés spécifiées pour l’élément CatalogItem.For example: CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties can be used to get the specified properties for the CatalogItem.
    • Query string (chaîne de requête, facultatif) : fournit des paramètres simples supplémentaires, tels que les critères de sélection de ressource ou de version de l’API.Query string (optional): Provides additional simple parameters, such as the API version or resource selection criteria.
  • Champs de message d’en-tête de requête HTTP :HTTP request message header fields:

    • Méthode HTTP obligatoire (également appelée opération ou verbe), indiquant au service le type d’opération que vous demandez.A required HTTP method (also known as an operation or verb), which tells the service what type of operation you are requesting. Les API REST de Reporting Services prennent en charge les méthodes DELETE, GET, HEAD, PUT, POST et PATCH.Reporting Services REST APIs support DELETE, GET, HEAD, PUT, POST, and PATCH methods.
    • Champs d’en-tête supplémentaires facultatifs, tels que requis par l’URI et la méthode HTTP spécifiés.Optional additional header fields, as required by the specified URI and HTTP method.
  • Champs de corps de message de requête HTTP facultatifs, pour prendre en charge l’URI et l’opération HTTP.Optional HTTP request message body fields, to support the URI and HTTP operation. Par exemple, les opérations POST contiennent des objets encodés MIME qui sont transmis en tant que paramètres complexes.For example, POST operations contain MIME-encoded objects that are passed as complex parameters. Pour les opérations POST ou PUT, le type d’encodage MIME pour le corps doit être spécifié également dans l’en-tête de demande Content-type.For POST or PUT operations, the MIME-encoding type for the body should be specified in the Content-type request header as well. Certains services requièrent que vous utilisiez un type MIME spécifique, tel que application/json.Some services require you to use a specific MIME type, such as application/json.
  • Champs d’en-tête de message de réponse HTTP :HTTP response message header fields:

    • Code d’état HTTP, dans la plage des codes de réussite 2xx aux codes d’erreur 4xx ou 5xx.An HTTP status code, ranging from 2xx success codes to 4xx or 5xx error codes. Un code d’état défini par le service peut également être retourné, comme indiqué dans la documentation de l’API.Alternatively, a service-defined status code may be returned, as indicated in the API documentation.
    • Champs d’en-tête supplémentaires facultatifs, comme requis pour prendre en charge de réponse de la demande, tel un en-tête de réponse Content-type.Optional additional header fields, as required to support the request's response, such as a Content-type response header.
  • Champs de corps du message de réponse HTTP facultatifs :Optional HTTP response message body fields:

    • Des objets de réponse encodés MIME sont renvoyés dans le corps de la réponse HTTP, telle une réponse d’une méthode GET qui retourne des données.MIME-encoded response objects are returned in the HTTP response body, such as a response from a GET method that is returning data. En règle générale, ces objets sont retournés dans un format structuré tel que JSON ou XML, comme indiqué par l’en-tête de réponse Content-type.Typically, these objects are returned in a structured format such as JSON or XML, as indicated by the Content-type response header.

Documentation de l’APIAPI documentation

Une API REST moderne appelle une documentation moderne sur l’API.A modern REST API calls for modern API documentation. L’API REST repose sur la spécification OpenAPI (aussi appeléeThe REST API is built on the OpenAPI specification (a.k.a. spécification Swagger), et une documentation est disponible sur SwaggerHub.the swagger specification) and documentation is available on SwaggerHub. Au-delà de la documentation de l’API, SwaggerHub aide à générer une bibliothèque cliente dans le langage choisi : JavaScript, TypeScript, c#, Java, Python, Ruby et bien plus encore.Beyond documenting the API, SwaggerHub helps generate a client library in the language of choice – JavaScript, TypeScript, C#, Java, Python, Ruby, and more.

Test des appels d’APITesting API calls

Un outil pour tester les messages de requête-réponse HTTP est Fiddler.A tool for testing HTTP request/response messages is Fiddler. Fiddler est un site proxy de débogage web gratuit capable d’intercepter vos demandes REST, ce qui facilite le diagnostic des messages de requête-réponse HTTP.Fiddler is a free web debugging proxy that can intercept your REST requests, making it easy to diagnose the HTTP request/ response messages.

Étapes suivantesNext steps

Passez en revue les API disponibles sur de SwaggerHub.Review the available APIs over on SwaggerHub.

Des exemples sont disponibles sur GitHub.Samples are available on GitHub. L’exemple inclut une application HTML5 reposant sur TypeScript, React et Webpack ainsi qu’un exemple PowerShell.The sample includes an HTML5 app built on TypeScript, React, and webpack along with a PowerShell example.

D’autres questions ?More questions? Essayez d’interroger la communauté Power BITry asking the Power BI Community