Desarrollo con las API de REST para Power BI Report ServerDevelop with the REST APIs for Power BI Report Server

Power BI Report Server admite API de transferencia de estado representacional (REST).Power BI Report Server support Representational State Transfer (REST) APIs. Las API de REST son puntos de conexión de servicio que admiten un conjunto de operaciones HTTP (métodos), logrando así crear, recuperar, actualizar o eliminar el acceso a los recursos de un servidor de informes.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.

La API de REST proporciona acceso mediante programación a los objetos de un catálogo de Power BI Report Server.The REST API provides programmatic access to the objects in a Power BI Report Server catalog. Algunos ejemplos de objetos son carpetas, informes, KPI, orígenes de datos, conjuntos de datos, planes de actualización, suscripciones y mucho más.Examples of objects are folders, reports, KPIs, data sources, datasets, refresh plans, subscriptions, and more. Con la API de REST puede, por ejemplo, navegar por la jerarquía de carpetas, detectar el contenido de una carpeta o descargar una definición de informe.Using the REST API, you can, for example, navigate the folder hierarchy, discover the contents of a folder, or download a report definition. También puede crear, actualizar y eliminar objetos.You can also create, update, and delete objects. Ejemplos de trabajos con objetos son la carga de un informe, la ejecución de un plan de actualización, la eliminación de una carpeta, etc.Examples of working with objects are upload a report, execute a refresh plan, delete a folder, and so on.

Componentes de una solicitud y respuesta de la API de RESTComponents of a REST API request/response

Un par de solicitud y respuesta de la API de REST puede dividirse en cinco componentes:A REST API request/response pair can be separated into five components:

  • El identificador URI de la solicitud, que consta de: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}.The request URI, which consists of: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}. Aunque el identificador URI de la solicitud se incluye en el encabezado del mensaje de solicitud, lo llamamos aquí por separado porque la mayoría de los lenguajes o marcos de trabajo exigen pasarla por separado del mensaje de solicitud.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.

    • Esquema de URI: indica el protocolo utilizado para transmitir la solicitud.URI scheme: Indicates the protocol used to transmit the request. Por ejemplo, http o https.For example, http or https.
    • Host del URI: especifica el nombre de dominio o la dirección IP del servidor donde se hospeda el punto de conexión del servicio REST, como 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.
    • Ruta de acceso del recurso: especifica el recurso o colección de recursos, que puede incluir varios segmentos utilizados por el servicio para determinar la selección de esos recursos.Resource path: Specifies the resource or resource collection, which may include multiple segments used by the service in determining the selection of those resources. Por ejemplo: CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties se puede utilizar para obtener las propiedades especificadas para CatalogItem.For example: CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties can be used to get the specified properties for the CatalogItem.
    • Cadena de consulta (opcional): proporciona parámetros simples adicionales, como los criterios de selección de recursos o la versión de la API.Query string (optional): Provides additional simple parameters, such as the API version or resource selection criteria.
  • Campos de encabezado de mensaje de solicitud HTTP:HTTP request message header fields:

    • Un método HTTP obligatorio (también conocido como operación o verbo), que indica al servicio qué tipo de operación está solicitando.A required HTTP method (also known as an operation or verb), which tells the service what type of operation you are requesting. Las API de REST de Reporting Services admiten los métodos DELETE, GET, HEAD, PUT, POST y PATCH.Reporting Services REST APIs support DELETE, GET, HEAD, PUT, POST, and PATCH methods.
    • Campos de encabezado adicionales opcionales, según sea necesario por el método HTTP y el identificador URI especificados.Optional additional header fields, as required by the specified URI and HTTP method.
  • Campos del cuerpo del mensaje de solicitud HTTP opcionales para admitir el identificador URI y la operación HTTP.Optional HTTP request message body fields, to support the URI and HTTP operation. Por ejemplo, las operaciones POST contienen objetos codificados con MIME que se pasan como parámetros complejos.For example, POST operations contain MIME-encoded objects that are passed as complex parameters. Para las operaciones POST o PUT, el tipo de codificación MIME para el cuerpo debe especificarse también en el encabezado de la solicitud 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. Algunos servicios requieren que se use un tipo MIME concreto, como application/json.Some services require you to use a specific MIME type, such as application/json.
  • Campos de encabezado del mensaje de respuesta HTTP:HTTP response message header fields:

    • Un código de estado HTTP, en el intervalo de 2xx para los códigos de éxito a 4xx o 5xx para los códigos de error.An HTTP status code, ranging from 2xx success codes to 4xx or 5xx error codes. Como alternativa, se puede devolver un código de estado definido por el servicio, como se indica en la documentación de la API.Alternatively, a service-defined status code may be returned, as indicated in the API documentation.
    • Campos de encabezado adicional opcional, según sea necesario para admitir la respuesta a la solicitud, como un encabezado de respuesta Content-type.Optional additional header fields, as required to support the request's response, such as a Content-type response header.
  • Campos del cuerpo del mensaje de respuesta HTTP opcionales:Optional HTTP response message body fields:

    • Se devuelven objetos de respuesta codificados con MIME en el cuerpo de la respuesta HTTP, como una respuesta a un método GET que devuelve datos.MIME-encoded response objects are returned in the HTTP response body, such as a response from a GET method that is returning data. Normalmente, estos objetos se devuelven en un formato estructurado como JSON o XML, tal y como indica el encabezado de respuesta Content-type.Typically, these objects are returned in a structured format such as JSON or XML, as indicated by the Content-type response header.

Documentación de la APIAPI documentation

Una API de REST moderna lleva consigo una documentación de la API moderna.A modern REST API calls for modern API documentation. La API de REST se basa en la especificación OpenAPI (también conocida comoThe REST API is built on the OpenAPI specification (a.k.a. la especificación de swagger) y la documentación está disponible en SwaggerHub.the swagger specification) and documentation is available on SwaggerHub. Más allá de la documentación de la API, SwaggerHub ayuda a generar una biblioteca de cliente en el lenguaje que elija: JavaScript, TypeScript, C#, Java, Python, Ruby y otros.Beyond documenting the API, SwaggerHub helps generate a client library in the language of choice – JavaScript, TypeScript, C#, Java, Python, Ruby, and more.

Prueba de las llamadas a la APITesting API calls

Fiddler es una herramienta para probar los mensajes de solicitud y respuesta HTTP.A tool for testing HTTP request/response messages is Fiddler. Fiddler es un proxy para depuración web gratuito que puede interceptar las solicitudes REST, lo que facilita el diagnóstico de los mensajes de solicitud y respuesta HTTP.Fiddler is a free web debugging proxy that can intercept your REST requests, making it easy to diagnose the HTTP request/ response messages.

Pasos siguientesNext steps

Revise las API disponibles en SwaggerHub.Review the available APIs over on SwaggerHub.

Hay ejemplos disponibles en GitHub.Samples are available on GitHub. El ejemplo incluye una aplicación HTML5 creada en TypeScript, React y webpack junto con un ejemplo de PowerShell.The sample includes an HTML5 app built on TypeScript, React, and webpack along with a PowerShell example.

¿Tiene más preguntas?More questions? Pruebe a preguntar a la comunidad de Power BITry asking the Power BI Community