Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ FunctionGraph/ Referência de API/ Chamada das API/ Feito de uma solicitação de API
Atualizado em 2022-11-08 GMT+08:00

Feito de uma solicitação de API

Esta seção descreve a estrutura de uma solicitação de API REST e usa a API Identity and Access Management (IAM) para obtenção de um token de usuário como um exemplo para demonstrar como chamar uma API. O token obtido é usado para autenticar a chamada de outras API.

URI de solicitação

Um URI de solicitação está no seguinte formato:

{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}

Embora um URI de solicitação esteja incluído no cabeçalho da solicitação, a maioria das linguagens de programação ou estruturas exigem que o URI de solicitação seja transmitido separadamente.

  • URI-scheme: Protocolo usado para transmitir solicitações. Todas as API usam HTTPS.
  • Endpoint: Nome de domínio ou endereço IP do servidor que possui o serviço REST. O endpoint varia entre serviços em diferentes regiões. Pode ser obtido em Regiões e endpoints. Por exemplo, o endpoint do IAM na região AP-Bangkok é iam.ap-southeast-2.myhwclouds.com.
  • resource-path: Caminho de acesso de uma API para executar uma operação especificada. Obtenha o caminho a partir do URI de uma API. Por exemplo, o resource-path da API usada para obter um token de usuário é /v3/auth/tokens.
  • query-string: Parâmetro de consulta, que é opcional. Verifique se um ponto de interrogação (?) está incluído antes de cada parâmetro de consulta no formato "Nome do parâmetro = valor do parâmetro". Por exemplo, ?limit=10 indica que um máximo de 10 registros de dados serão exibidos.

Por exemplo, para obter um token IAM na região AP-Bangkok , obtenha o ponto final do IAM (iam.ap-southeast-2.myhwclouds.com) para essa região e o caminho do recurso (/v3/auth/tokens) no URI da API usada para obter um token de usuário. Em seguida, construa o URI da seguinte forma:

https://iam.ap-southeast-2.myhuaweicloud.com/v3/auth/tokens
Figura 1 Exemplo de URI

Para simplificar a exibição de URI neste documento, cada API é fornecida apenas com um resource-path e um método de solicitação. O URI-scheme de todas as API é HTTPS, e os endpoints de todas as API na mesma região são idênticos.

Métodos de solicitação

O protocolo HTTP define os seguintes métodos de solicitação que podem ser usados para enviar uma solicitação ao servidor:

  • GET: solicita que o servidor retorne os recursos especificados.
  • PUT: solicita que o servidor atualize os recursos especificados.
  • POST: solicita que o servidor adicione recursos ou execute operações especiais.
  • DELETE: solicita que o servidor exclua recursos especificados, por exemplo, um objeto.
  • HEAD: o mesmo que GET, exceto que o servidor deve retornar apenas o cabeçalho da resposta.
  • PATCH: solicita ao servidor que atualize o conteúdo parcial de um recurso especificado. Se o recurso não existir, um novo recurso será criado.

Por exemplo, no caso da API usada para obter um token de usuário, o método de solicitação é POST. A solicitação é o seguinte:

POST https://iam.ap-southeast-2.myhuaweicloud.com/v3/auth/tokens

Cabeçalho da solicitação

Você também pode adicionar campos de cabeçalho adicionais a uma solicitação, como os campos exigidos por um método URI ou HTTP especificado. Por exemplo, para solicitar as informações de autenticação, adicione Content-type, que especifica o tipo de corpo da solicitação.

Os campos comuns de cabeçalho de solicitação são os seguintes:

  • Content-Type: especifica o tipo ou formato do corpo da solicitação. Este campo é obrigatório e seu valor padrão é application/json. Outros valores deste campo serão fornecidos para as API específicas, se houver.
  • X-Auth-Token: especifica um token de usuário apenas para autenticação de API baseada em token. O token de usuário é uma resposta à API usada para obter um token de usuário. Esta API é a única que não requer autenticação.

Além de oferecer suporte à autenticação baseada em token, as API de nuvem pública também oferecem suporte à autenticação usando ID de chave de acesso/chave de acesso secreta (AK/SK). Durante a autenticação baseada em AK/SK, um SDK é usado para assinar a solicitação, e os campos de cabeçalho Authorization (informações de assinatura) e X-Sdk-Date (hora em que a solicitação é enviada) são adicionados automaticamente à solicitação.

  • X-Project-ID: especifica um ID de subprojeto. Este parâmetro é obrigatório apenas em cenários de vários projetos.
  • X-Domain-ID: especifica um ID de conta.

A API usada para obter um token de usuário não requer autenticação. Portanto, apenas o campo Content-type precisa ser adicionado às solicitações para chamar a API. Um exemplo de tais solicitações é o seguinte:

POST https://iam.ap-southeast-2.myhuaweicloud.com/v3/auth/tokens
Content-Type: application/json

Corpo da solicitação

O corpo de uma solicitação geralmente é enviado em um formato estruturado, conforme especificado no campo de cabeçalho Content-Type. O corpo da solicitação transfere o conteúdo, exceto o cabeçalho da solicitação.

O corpo da solicitação varia entre as API. Algumas API não exigem o corpo da solicitação, como as API solicitadas usando os métodos GET e DELETE.

No caso da API usada para obter um token de usuário, os parâmetros da solicitação e a descrição do parâmetro podem ser obtidos da solicitação da API. O seguinte fornece um exemplo de solicitação com um corpo incluído. Substitua username, domainname, ******** (login password), e xxxxxxxxxxxxxxxxxx (ID do projeto) pelos valores reais. Para saber como obter uma ID de projeto, consulte Regiões e endpoints.

O parâmetro scope especifica onde um token entra em vigor. Você pode definir scope para uma conta ou um projeto em uma conta. No exemplo a seguir, o token tem efeito somente para os recursos em um projeto especificado. Para obter mais informações sobre essa API, consulte Obtenção de um token de usuário.

POST https://iam.ap-southeast-2.myhuaweicloud.com/v3/auth/tokens 
Content-Type: application/json 

{ 
    "auth": { 
        "identity": { 
            "methods": [ 
                "password" 
            ], 
            "password": { 
                "user": { 
                    "name": "username", 
                    "password": "********", 
                    "domain": { 
                        "name": "domianname" 
                    } 
                } 
            } 
        }, 
        "scope": { 
            "project": { 
                "name": "xxxxxxxxxxxxxxxxxx" 
            } 
        } 
    } 
}

Se todos os dados necessários para a solicitação da API estiverem disponíveis, você poderá enviar a solicitação para chamar a API por meio de curl, Postman ou coding. Na resposta à API usada para obter um token de usuário, x-subject-token é o token de usuário desejado. Esse token pode ser usado para autenticar a chamada de outras API.