Поделиться через


Начало работы с REST API

Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Azure DevOps REST API обеспечивают мощный программный доступ к рабочим элементам, репозиториям, сборкам, выпускам и т. д. Независимо от того, создаете ли вы пользовательские интеграции, автоматизаете рабочие процессы или расширяете возможности Azure DevOps, понимание основных шаблонов и концепций является важным для успешной реализации.

Подсказка

Готово к написанию кода? Перейдите к примерам REST API для выполнения полных рабочих примеров с современными шаблонами проверки подлинности.

В этой статье рассматриваются основные понятия и шаблоны для Azure DevOps REST API. Примеры практической реализации см. в примерах REST API.

Подсказка

Вы можете использовать ИИ, чтобы помочь с этой задачей позже в этой статье или ознакомиться с включение помощи ИИ в Azure DevOps MCP Server, чтобы начать работу.

Структура URL-адресов

API следуют общему шаблону, как показано в следующем примере:

VERB https://{instance}/{collection}/{team-project}/_apis/{area}/{resource}?api-version={version}

Подсказка

По мере развития API рекомендуется включить версию API в каждый запрос. Эта практика поможет избежать непредвиденных изменений в API, которые могут нарушиться.

Для служб Azure DevOps instance имеет значение dev.azure.com/{organization} и collection имеет значение DefaultCollection, поэтому шаблон выглядит следующим образом:

VERB https://dev.azure.com/{organization}/_apis/{area}/{resource}?api-version={version}

Пример конечной точки:

GET https://dev.azure.com/{organization}/_apis/projects?api-version=7.2

Аутентификация

Azure DevOps REST API поддерживают несколько методов проверки подлинности:

  • Microsoft Entra ID — рекомендуется для рабочих приложений
  • Личные маркеры доступа (PATs) — простая проверка подлинности для сценариев и тестирования
  • OAuth 2.0 — для приложений, отличных от Майкрософт
  • Принципы обслуживания — для автоматизированных сценариев

Это важно

Рассмотрите возможность использования более безопасных токенов Microsoft Entra вместо более рискованных персональных токенов доступа. Дополнительные сведения см. в разделе "Сокращение использования PAT". Просмотрите рекомендации по проверке подлинности , чтобы выбрать правильный механизм проверки подлинности для ваших потребностей.

Формат ответа

Azure DevOps REST API обычно возвращают ответы JSON. Ниже приведен пример структуры ответов:

{
    "value": [
        {
            "id": "00000000-0000-0000-0000-000000000000",
            "name": "Fabrikam-Fiber-TFVC",
            "url": "https://dev.azure.com/fabrikam-fiber-inc/_apis/projects/00000000-0000-0000-0000-000000000000",
            "description": "Team Foundation Version Control projects"
        }
    ],
    "count": 1
}

Ответ JSON, который обычно возвращается из ИНТЕРФЕЙСов REST API, хотя существует несколько исключений, например BLOB-объектов Git.

Подсказка

Полные рабочие примеры, демонстрирующие анализ этих ответов, см. в примерах REST API.

Методы и операции HTTP

Azure DevOps REST API используют стандартные методы HTTP:

Метод Используется для... Пример
ПОЛУЧАЙ Получите ресурс или список ресурсов Получить проекты, рабочие элементы
ПОСТ Создание ресурса или получение ресурсов с помощью расширенных запросов Создание рабочих элементов, запрос рабочих элементов
ПОСТАВИТЬ Создание или полная замена ресурса Замена определения сборки, обновление политики
ПАТЧ Обновление определенных полей ресурса Обновление полей рабочего элемента
Удалить Удаление ресурса Удаление рабочего элемента

Подсказка

Практические примеры каждого метода HTTP с полными примерами кода см. в примерах REST API.

Заголовки запросов и содержимое

Если вы предоставляете текст запроса (обычно с POST, PUT и PATCH), включите соответствующие заголовки:

Content-Type: application/json

Для операций PATCH с рабочими элементами используйте:

Content-Type: application/json-patch+json

Переопределение метода HTTP

Некоторые веб-прокси могут поддерживать только HTTP-команды GET и POST, но не более современные HTTP-команды, такие как PATCH и DELETE. Если вызовы могут проходить через один из этих прокси-серверов, можно отправить фактическую команду с помощью метода POST с заголовком для переопределения метода. Например, может потребоваться обновить рабочий элемент (PATCH _apis/wit/workitems/3), но может потребоваться пройти через прокси-сервер, который разрешает только GET или POST. Вы можете передать соответствующую команду (PATCH в этом случае) в качестве параметра заголовка HTTP-запроса и использовать POST в качестве фактического метода HTTP.

POST https://dev.azure.com/fabrikam-fiber-inc/_apis/wit/workitems/3
X-HTTP-Method-Override: PATCH
{
   (PATCH request body)
}

Коды ответа

Общие сведения о кодах ответов HTTP помогают правильно обрабатывать ответы API:

Ответ Значение Примечания.
200 Успех Текст ответа содержит запрошенные данные
201 Создано Ресурс успешно создан
204 Успех Текст ответа не указан (общий для DELETE)
400 ошибка запроса Недопустимые параметры или текст запроса
401 Не авторизовано Сбой аутентификации или её отсутствие
403 Запрещено Пользователь не имеет разрешения на операцию
404 Не найдено Ресурс не существует или нет разрешения на просмотр
409 Конфликт Конфликты запросов с текущим состоянием ресурса

Управление версиями API

Azure DevOps REST API версионируются, чтобы приложения продолжали работать по мере развития API.

Руководящие принципы

  • Всегда указывайте версию API с каждым запросом (обязательным)
  • Форматирование версий API следующим образом: {major}.{minor} или {major}.{minor}-{stage} (например, 7.2) 7.2-preview
  • Используйте определенные предварительные версии при наличии: 7.2-preview.17.2-preview.2
  • Обновление до выпущенных версий, когда предварительные API устаревают

Использование

Укажите версию API в качестве параметра запроса URL-адреса:

GET https://dev.azure.com/{organization}/_apis/projects?api-version=7.2

Или в заголовке запроса:

Accept: application/json;api-version=7.2

Сведения о поддерживаемых версиях см. в разделе "Управление версиями REST API".

Дополнительные ресурсы

Инструкции по практической реализации и полные примеры кода см. в следующих примерах:

Использование ИИ для создания вызовов REST API

Если у вас есть Azure DevOps MCP Server подключен к агенту ИИ в режиме агента, можно использовать запросы естественного языка для создания и устранения неполадок вызовов REST API.

задачи Пример запроса
Создание запроса GET Show me how to construct a GET request to list all projects in my Azure DevOps organization using the REST API
Создание тела POST-запроса Generate the JSON-patch body for creating a work item using the Azure DevOps REST API
Управление аутентификацией Write C# code to call the Azure DevOps REST API with a Bearer token from Microsoft Entra ID
Изучение областей API What Azure DevOps REST API endpoints are available for managing Git pull requests?
Синтаксический анализ ответов API Show me how to deserialize an Azure DevOps REST API response into C# objects and handle pagination with continuation tokens
Отладка ошибок API I'm getting a 400 error when calling the Azure DevOps work item update API — help me understand the correct PATCH format

Замечание

Режим агента и сервер MCP используют естественный язык, чтобы настроить эти запросы или задать дальнейшие вопросы, чтобы уточнить результаты.

Дальнейшие шаги