Power BI Report Server에 대한 REST API를 사용하여 개발Develop with the REST APIs for Power BI Report Server

Power BI Report Server는 REST(Representational State Transfer) API를 지원합니다.Power BI Report Server support Representational State Transfer (REST) APIs. REST API는 HTTP 작업(메서드)의 집합을 지원하는 서비스 끝점이며, 보고서 서버 내에서 리소스에 대한 액세스 만들기, 검색, 업데이트 또는 삭제를 제공합니다.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.

REST API는 Power BI Report Server 카탈로그의 개체에 대한 프로그래밍 방식 액세스를 제공합니다.The REST API provides programmatic access to the objects in a Power BI Report Server catalog. 개체의 예로는 폴더, 보고서, KPI, 데이터 원본, 데이터 집합, 새로 고침 계획, 구독 등이 있습니다.Examples of objects are folders, reports, KPIs, data sources, datasets, refresh plans, subscriptions, and more. REST API를 사용하여, 예를 들어, 폴더 계층을 탐색하고, 폴더의 내용을 검색하거나 보고서 정의를 다운로드할 수 있습니다.Using the REST API, you can, for example, navigate the folder hierarchy, discover the contents of a folder, or download a report definition. 개체를 만들고, 업데이트하고 삭제할 수도 있습니다.You can also create, update, and delete objects. 개체를 사용하는 예로는 보고서 업로드, 새로 고침 계획 실행, 폴더 삭제 등이 있습니다.Examples of working with objects are upload a report, execute a refresh plan, delete a folder, and so on.

REST API 요청/응답의 구성 요소Components of a REST API request/response

REST API 요청/응답 쌍은 5개의 구성 요소로 구분될 수 있습니다.A REST API request/response pair can be separated into five components:

  • 요청 URI{URI-scheme} :// {URI-host} / {resource-path} ? {query-string}으로 구성됩니다.The request URI, which consists of: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}. 요청 URI는 요청 메시지 헤더에 포함되어 있지만 대부분의 언어 또는 프레임워크에서는 요청 메시지에서 이를 별도로 전달해야 하므로 여기에서는 별도로 호출합니다.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 체계: 요청을 전송하는 데 사용되는 프로토콜을 나타냅니다.URI scheme: Indicates the protocol used to transmit the request. 예: http 또는 httpsFor example, http or https.
    • URI 호스트: REST 서비스 끝점이 호스팅되는 서버의 도메인 이름 또는 IP 주소를 지정합니다(예: 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: Specifies the resource or resource collection, which may include multiple segments used by the service in determining the selection of those resources. 예: CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties는 CatalogItem에 대한 지정된 속성을 가져오는 데 사용할 수 있습니다.For example: CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties can be used to get the specified properties for the CatalogItem.
    • 쿼리 문자열(선택 사항): API 버전 또는 리소스 선택 조건과 같은 추가 단순 매개 변수를 제공합니다.Query string (optional): Provides additional simple parameters, such as the API version or resource selection criteria.
  • HTTP 요청 메시지 헤더 필드:HTTP request message header fields:

    • 요청하는 작업의 유형을 서비스에 알려주는 필수 HTTP 메서드(작업 또는 동사라고도 함)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 API는 DELETE, GET, HEAD, PUT, POST 및 PATCH 메서드를 지원합니다.Reporting Services REST APIs support DELETE, GET, HEAD, PUT, POST, and PATCH methods.
    • 지정된 URI 및 HTTP 메서드의 필요에 따른 선택적 추가 헤더 필드Optional additional header fields, as required by the specified URI and HTTP method.
  • URI 및 HTTP 작업을 지원하는 선택적 HTTP 요청 메시지 본문 필드Optional HTTP request message body fields, to support the URI and HTTP operation. 예를 들어, POST 작업은 복잡한 매개 변수로 전달되는 MIME 인코딩된 개체를 포함합니다.For example, POST operations contain MIME-encoded objects that are passed as complex parameters. POST 또는 PUT 작업의 경우 본문에 대한 MIME 인코딩된 유형도 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. 일부 서비스에서는 application/json과 같은 특정 MIME 유형을 사용해야 합니다.Some services require you to use a specific MIME type, such as application/json.
  • HTTP 응답 메시지 헤더 필드:HTTP response message header fields:

    • 2xx 성공 코드에서 4xx 또는 5xx 오류 코드에까지 이르는 HTTP 상태 코드An HTTP status code, ranging from 2xx success codes to 4xx or 5xx error codes. 또는 API 설명서에 나와 있는 것처럼 서비스 정의된 상태 코드가 반환될 수 있습니다.Alternatively, a service-defined status code may be returned, as indicated in the API documentation.
    • 요청의 응답을 지원하는 데 필요한 선택적 추가 헤더 필드(예: Content-type 응답 헤더)Optional additional header fields, as required to support the request's response, such as a Content-type response header.
  • 선택적 HTTP 응답 메시지 본문 필드:Optional HTTP response message body fields:

    • MIME 인코딩된 응답 개체는 데이터를 반환하는 GET 메서드의 응답과 같이 HTTP 응답 본문에서 반환됩니다.MIME-encoded response objects are returned in the HTTP response body, such as a response from a GET method that is returning data. 일반적으로 이러한 개체는 Content-type 응답 헤더로 표시된 대로 JSON 또는 XML과 같은 구조적 형식으로 반환됩니다.Typically, these objects are returned in a structured format such as JSON or XML, as indicated by the Content-type response header.

API 설명서API documentation

최신 API 설명서에 대한 최신 REST API를 호출합니다.A modern REST API calls for modern API documentation. REST API는OpenAPI 사양(즉The REST API is built on the OpenAPI specification (a.k.a. swagger 규격)을 기반으로 하며 설명서는 SwaggerHub에서 제공합니다.the swagger specification) and documentation is available on SwaggerHub. API 문서화를 넘어 SwaggerHub를 통해 JavaScript, TypeScript, C#, Java, Python, Ruby 등의 언어로 클라이언트 라이브러리를 생성할 수 있습니다.Beyond documenting the API, SwaggerHub helps generate a client library in the language of choice – JavaScript, TypeScript, C#, Java, Python, Ruby, and more.

API 호출 테스트Testing API calls

HTTP 요청/응답 메시지를 테스트하는 도구는 Fiddler입니다.A tool for testing HTTP request/response messages is Fiddler. Fiddler는 HTTP 요청/응답 메시지를 진단하기 쉽게 만들어 REST 요청을 가로챌 수 있는 무료 웹 디버깅 프록시입니다.Fiddler is a free web debugging proxy that can intercept your REST requests, making it easy to diagnose the HTTP request/ response messages.

다음 단계Next steps

SwaggerHub를 통해 사용 가능한 API를 검토합니다.Review the available APIs over on SwaggerHub.

샘플은 GitHub에서 제공됩니다.Samples are available on GitHub. 샘플은 TypeScript, React 및 PowerShell 예제와 함께 웹팩을 기반으로 한 HTML5 앱을 포함합니다.The sample includes an HTML5 app built on TypeScript, React, and webpack along with a PowerShell example.

궁금한 점이 더 있나요?More questions? Power BI 커뮤니티에 질문합니다.Try asking the Power BI Community