Partilhar via


Introdução às APIs REST

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

As APIs REST do Azure DevOps fornecem acesso programático poderoso a itens de trabalho, repositórios, compilações, versões e muito mais. Quer esteja a criar integrações personalizadas, a automatizar fluxos de trabalho ou a alargar as capacidades do Azure DevOps, compreender os padrões e conceitos fundamentais é essencial para uma implementação bem-sucedida.

Tip

Pronto para começar a codificar? Salte para os exemplos completos de funcionamento de API REST com padrões de autenticação modernos.

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

Estrutura do 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}

Tip

À 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 podem quebrar.

Serviços de DevOps do Azure

Para os Serviços de DevOps do Azure, instance é dev.azure.com/{organization} e collection é DefaultCollection, portanto, o padrão se parece com o exemplo a seguir:

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 Azure DevOps Server, 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:

  • Microsoft Entra ID - Recomendado para aplicativos de produção
  • Personal Access Tokens (PATs) - Autenticação simples para scripts e testes
  • OAuth 2.0 - Para aplicativos que não são da Microsoft
  • Entidades de serviço - Para cenários de automatização

Importante

A autenticação do Microsoft Entra ID é a abordagem recomendada para aplicativos de produção. Para obter exemplos de implementação e diretrizes completas de autenticação, 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á um exemplo de estrutura de resposta:

{
    "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ê recebe de volta das APIs REST, embora haja algumas exceções, como blobs Git.

Tip

Para obter exemplos de trabalho completos mostrando 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
Publicação Criar um recurso ou obter recursos usando consultas avançadas Criar itens de trabalho, consultar itens de trabalho
INSERIR Criar ou substituir completamente um recurso Criar/atualizar item de trabalho
CORREÇÃO Atualizar campos específicos de um recurso Atualizar campos do item de trabalho
SUPRIMIR Eliminar um recurso Excluir item de trabalho

Tip

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ê fornecer um corpo de solicitação (geralmente com POST, PUT e PATCH), inclua cabeçalhos apropriados:

Content-Type: application/json

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

Content-Type: application/json-patch+json

Substituição do método HTTP

Alguns proxies da Web podem suportar apenas os verbos HTTP GET e POST, mas não verbos HTTP mais modernos, como PATCH e DELETE. Se suas chamadas podem passar por um desses proxies, você pode 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ódigo de resposta

Compreender os códigos de resposta HTTP ajuda você a lidar com as respostas da API adequadamente:

Resposta Significado Observações
200 Sucesso O corpo da resposta contém os dados solicitados
201 Criado Recurso criado com êxito
204 Sucesso Nenhum corpo de mensagem de resposta (comum com DELETE)
400 Pedido Incorreto Parâmetros inválidos ou corpo da solicitação
401 Não autorizado Falha na autenticação ou falta
403 Proibido O usuário não tem permissão para operação
404 Não encontrado O recurso não existe ou não há permissão para exibir
409 Conflito Conflito da solicitação com o estado atual do recurso

Versionamento de API

As APIs REST do Azure DevOps são versionadas para garantir que os aplicativos continuem funcionando à medida que as APIs evoluem.

Orientações

  • Sempre especifique a versão da API com cada solicitação (obrigatório)
  • Formatar versões da 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íveis: 7.2-preview.1, 7.2-preview.2
  • Atualize para versões lançadas quando as APIs de visualização forem preteridas

Utilização

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 suportadas, consulte Controle de versão da API REST.

Mais recursos

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

Próximos passos