Разработка с помощью API REST для служб Reporting Services

Область применения: службы SQL Server Reporting Services (2017 и более поздние версии) Сервер отчетов Power BI Not supported

Microsoft SQL Server 2017 Reporting Services поддерживает API передачи репрезентативного состояния (REST). API-интерфейсы REST — это конечные точки службы, которые поддерживают набор операций HTTP (методов), предоставляющих доступ на создание, получение, обновление или удаление ресурсов в сервере отчетов.

API REST обеспечивает программный доступ к объектам в каталоге сервера отчетов служб SQL Server 2017 Reporting Services. Примерами объектов являются папки, отчеты, ключевые показатели эффективности, источники данных, наборы данных, планы обновления, подписки и многое другое. С помощью API REST можно, например, перемещаться по иерархии папок, обнаруживать содержимое папки или загружать определение отчета. Можно также создавать, обновлять и удалять объекты. Примеры работы с объектами включают отправку отчета, выполнение плана обновления, удаление папки и т. д.

Примечание.

Если вы хотите просмотреть или удалить персональные данные, ознакомьтесь с правилами Майкрософт на сайте Запросы субъектов данных, определенные в GDPR, в отношении Windows. Если вам требуются общие сведения о GDPR, см. раздел, посвященный GDPR, на портале Service Trust Portal.

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

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

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

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

    • Обязательный метод HTTP (также известный как операция или команда), который сообщает службе, какой тип операции вы запрашиваете. API-интерфейсы REST служб 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

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

Тестовые вызовы API

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

Следующие шаги

Ознакомьтесь с доступными API-интерфейсами на сайте SwaggerHub.

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

Есть еще вопросы? Посетите форум служб Reporting Services.