Решение "Сервер отчетов Power BI" поддерживает интерфейсы REST API. Интерфейсы REST API — это конечные точки служб, которые поддерживают набор операций HTTP (методов) и предоставляют ресурсам на сервере отчетов доступ на создание, получение, обновление или удаление.

REST API обеспечивает программный доступ к объектам в каталоге решения "Сервер отчетов Power BI". Такими объектами могут быть папки, отчеты, ключевые показатели эффективности, источники данных, наборы данных, планы обновления, подписки и др. С помощью REST API вы можете, например, перемещаться по иерархии папок, обнаруживать содержимое папки или скачивать определение отчета. Вы также можете создавать, обновлять и удалять объекты. Примеры операций с объектами: отправка отчета, выполнение плана обновления, удаление папки и т. д.

Компоненты запросов и ответов REST API

Пару "запрос — ответ" REST API можно разделить на пять компонентов:

  • URI запроса{URI-scheme} :// {URI-host} / {resource-path} ? {query-string}. Хотя URI запроса содержится в заголовке сообщения запроса, в нашем случае мы вызываем его отдельно, так как для большинства языков или платформ требуется передавать его отдельно от сообщения запроса.

    • Схема URI — определяет протокол, используемый для передачи запроса. Например, http или https.
    • Узел URI — определяет доменное имя или IP-адрес сервера, на котором размещена конечная точка службы REST, например myserver.contoso.com.
    • Путь к ресурсу — определяет ресурс или коллекцию ресурсов, которые могут содержать несколько сегментов, используемых службой при определении выбора этих ресурсов. Например, CatalogItems(01234567-89ab-cdef-0123-456789abcdef)/Properties может использоваться для получения указанных свойств для класса CatalogItem.
    • Строка запроса (необязательно) — предоставляет дополнительные простые параметры, такие как критерий выбора версии API или ресурсов.
  • Поля заголовка сообщения HTTP-запроса:

    • Обязательный метод HTTP (операция или команда), который сообщает службе тип запрашиваемой операции. Интерфейсы REST API служб Reporting Services поддерживают такие методы: DELETE, GET, HEAD, PUT, POST и PATCH.
    • Необязательные дополнительные поля заголовка, требуемые для указанного URI и метода HTTP.
  • Необязательные поля текста сообщения HTTP-запроса для поддержки URI и операции HTTP. Например, операции POST содержат объекты в кодировке MIME, которые передаются в виде сложных параметров. Для операций POST или PUT тип кодировки MIME для текста сообщения также должен быть указан в заголовке запроса Content-type. Для некоторых служб требуется использовать определенный тип MIME, например application/json.

  • Поля заголовка сообщения HTTP-ответа:

    • Код состояния HTTP — от кодов успешного завершения 2xx до кодов ошибок 4xx или 5xx. Кроме того, может возвращаться определяемый службой код состояния, как указано в документации по API.
    • Необязательные дополнительные поля заголовка, требуемые для поддержки ответа на запрос, например заголовок ответа Content-type.
  • Необязательные поля текста сообщения HTTP-ответа:

    • В тексте HTTP-ответа возвращаются объекты в кодировке MIME, например ответа метода GET, который возвращает данные. Как правило, эти объекты возвращаются в структурированном формате, например JSON или XML, как указано в заголовок ответа Content-type.

Документация по API

Современные REST API описаны в современной документации по API. REST API основан на спецификации OpenAPI (она же спецификация Swagger). Документацию по этой спецификации см. на сайте SwaggerHub. Кроме размещения документации по API, сайт SwaggerHub позволяет создать клиентскую библиотеку на любом языке: JavaScript, TypeScript, C#, Java, Python, Ruby и др.

Тестирование вызовов API

Для тестирования HTTP-запросов и ответов используется средство Fiddler. Это бесплатный веб-прокси для отладки, который может перехватывать запросы REST, упрощая диагностику сообщений HTTP-запросов и ответов.

Дальнейшие действия

Просмотр доступных интерфейсов API на сайте SwaggerHub.

Примеры доступны на сайте GitHub. Примеры включают приложение HTML5, созданное с помощью TypeScript, React и Webpack, а также пример PowerShell.

Появились дополнительные вопросы? Попробуйте задать вопрос в сообществе Power BI.