Compartilhar via


Introdução às APIs REST

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

As APIs REST do Azure DevOps fornecem acesso programático avançado a itens de trabalho, repositórios, builds, versões e muito mais. Se você estiver criando integrações personalizadas, automatizando fluxos de trabalho ou estendendo recursos do Azure DevOps, entender os padrões e conceitos fundamentais é essencial para uma implementação bem-sucedida.

Dica

Pronto para iniciar a codificação? Pule para exemplos de API REST para obter exemplos de trabalho completos com padrões de autenticação modernos.

Este artigo aborda os conceitos e padrões fundamentais das APIs REST do Azure DevOps. Para obter exemplos práticos de implementação, consulte exemplos de API REST.

Estrutura de URL

As APIs seguem um padrão comum, conforme mostrado no exemplo a seguir:

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

Dica

À medida que as APIs evoluem, recomendamos que você inclua uma versão da API em cada solicitação. Essa prática pode ajudá-lo a evitar alterações inesperadas na API que poderiam causar falhas.

Azure DevOps Services

Para o Azure DevOps Services, instance é dev.azure.com/{organization} e collection é DefaultCollection, portanto, o padrão se parece com o seguinte exemplo:

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

Exemplo de endpoint:

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

Azure DevOps Server

Para o Servidor de DevOps do Azure, instance é {server:port}. A porta padrão para uma conexão não SSL é 8080.

A coleção padrão é DefaultCollection, mas você pode usar qualquer coleção.

Exemplos:

  • SSL: https://{server}/DefaultCollection/_apis/projects?api-version=7.2
  • Não SSL: http://{server}:8080/DefaultCollection/_apis/projects?api-version=7.2

Autenticação

As APIs REST do Azure DevOps dão suporte a vários métodos de autenticação:

  • ID do Microsoft Entra – Recomendado para aplicativos de produção
  • PATs (Tokens de Acesso Pessoal) – Autenticação simples para scripts e testes
  • OAuth 2.0 – Para aplicativos que não são da Microsoft
  • Principais de serviço – Para cenários automatizados

Importante

A autenticação da ID do Microsoft Entra é a abordagem recomendada para aplicativos de produção. Para obter exemplos de implementação e diretrizes de autenticação completas, consulte exemplos de API REST e diretrizes de autenticação.

Formato da resposta

As APIs REST do Azure DevOps normalmente retornam respostas JSON. Aqui está uma estrutura de resposta de exemplo:

{
    "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": "TeamFoundationVersionControlprojects"
        }
    ],
    "count": 1
}

A resposta é JSON, que geralmente é o que você obtém das APIs REST, embora haja algumas exceções, como blobs git.

Dica

Para obter exemplos de trabalho completos que mostram como analisar essas respostas, consulte exemplos de API REST.

Métodos e operações HTTP

As APIs REST do Azure DevOps usam métodos HTTP padrão:

Método Usado para... Exemplo
GET Obter um recurso ou uma lista de recursos Obter projetos, itens de trabalho
POST Criar um recurso ou obter recursos usando consultas avançadas Criar itens de trabalho, consultar itens de trabalho
PUT Criar ou substituir completamente um recurso Criar/atualizar item de trabalho
PATCH Atualizar campos específicos de um recurso Atualizar os campos do item de trabalho
DELETE Excluir um recurso Excluir item de trabalho

Dica

Para obter exemplos práticos de cada método HTTP com exemplos de código completos, consulte exemplos de API REST.

Solicitar cabeçalhos e conteúdo

Quando você fornece um corpo da solicitação (geralmente com POST, PUT e PATCH), inclua os cabeçalhos apropriados:

Content-Type: application/json

Para operações PATCH em itens de trabalho, use:

Content-Type: application/json-patch+json

Substituição do método HTTP

Alguns proxies da Web podem dar suporte apenas aos verbos HTTP GET e POST, mas não verbos HTTP mais modernos, como PATCH e DELETE. Se suas chamadas puderem passar por um desses proxies, você poderá enviar o verbo real usando um método POST, com um cabeçalho para substituir o método. Por exemplo, talvez você queira atualizar um item de trabalho (PATCH _apis/wit/workitems/3), mas talvez seja necessário passar por um proxy que permita apenas GET ou POST. Você pode passar o verbo adequado (PATCH neste caso) como um parâmetro de cabeçalho de solicitação HTTP e usar POST como o método HTTP real.

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

Códigos de resposta

Noções básicas sobre códigos de resposta HTTP ajuda você a lidar com as respostas da API adequadamente:

Resposta Significado Anotações
200 Êxito O corpo da resposta contém dados solicitados
201 Criado Recurso criado com êxito
204 Êxito Nenhum corpo de resposta (comum com DELETE)
400 Solicitação incorreta Parâmetros inválidos ou corpo da solicitação
401 Desautorizado Autenticação falhou ou está faltando
403 Proibido O usuário não tem permissão para a operação
404 Não encontrado O recurso não existe ou nenhuma permissão para exibir
409 Conflito Conflito de solicitação com o estado atual do recurso

Controle de versão da API

As APIs REST do Azure DevOps têm versão para garantir que os aplicativos continuem funcionando à medida que as APIs evoluem.

Diretrizes

  • Sempre especifique a versão da API com cada solicitação (necessária)
  • Formatar versões de API como: {major}.{minor} ou {major}.{minor}-{stage} (por exemplo, 7.2, ) 7.2-preview
  • Use revisões de visualização específicas quando disponível: 7.2-preview.1, 7.2-preview.2
  • Atualizar para versões lançadas quando as APIs de visualização forem preteridas

Uso

Especifique a versão da API como um parâmetro de consulta de URL:

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

Ou no cabeçalho da solicitação:

Accept: application/json;api-version=7.2

Para versões com suporte, consulte o controle de versão da API REST.

Mais recursos

Para obter diretrizes práticas de implementação e exemplos de código completos, consulte:

Próximas etapas