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.
Atualizado em 2024-08-31 GMT+08:00

Fazer uma solicitação de API

Esta seção descreve a estrutura de uma solicitação de API REST e usa a API do IAM para obtenção de um token de usuário por meio de autenticação de senha como um exemplo para demonstrar como chamar uma API. O token obtido contém as informações de identidade e permissões do usuário e pode ser usado para autenticar a chamada de outras APIs.

URI de solicitação

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

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

Tabela 1 Descrição do parâmetro

Parâmetro

Descrição

URI-scheme

Protocolo usado para transmitir solicitações. Todas as APIs usam HTTPS.

Endpoint

Nome de domínio ou endereço IP do servidor que executa o serviço REST. O ponto de extremidade varia entre serviços em diferentes regiões. Pode ser obtido a partir de Antes de começar. Por exemplo, o ponto de extremidade do IAM na região CN-Hong Kong é iam.ap-southeast-1.myhuaweicloud.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. Certifique-se de que um ponto de interrogação (?) seja incluído antes de cada parâmetro de consulta que esteja no formato "Parameter name=Parameter value". Por exemplo, ?limit=10 indica que um máximo de 10 registros de dados serão exibidos.

Por exemplo, para obter um token na região CN-Hong Kong, obtenha o ponto de extremidade do IAM (iam.ap-southeast-1.myhuaweicloud.com) para essa região e o resource-path (/v3/auth/tokens) no URI da API para obtenção de um token de usuário por meio de autenticação de senha. Em seguida, construa o URI da seguinte forma:

https://v3/auth/tokens

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

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 APIs é HTTPS, e os pontos de extremidade de todas as APIs 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 que o servidor atualize o conteúdo parcial de um recurso especificado. Se o recurso não existir, um novo recurso será criado.

Por exemplo, na API usada para obtenção de um token de usuário por meio de autenticação de senha, o método de solicitação é POST e a solicitação é a seguinte:

POST https://iam.ap-southeast-1.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 de URI ou de 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.
  • 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 por meio de autenticação de senha. Esta API é a única que não requer autenticação.

    Além de suportar a autenticação baseada em token, as APIs de nuvem pública também suportam a autenticação usando 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. Para obter mais informações, consulte Autenticação baseada em AK/SK.

A API usada para obter um token de usuário por meio de autenticação de senha 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-1.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 APIs. Algumas APIs não exigem o corpo da solicitação, como as APIs solicitadas usando os métodos GET e DELETE.

No caso da API usada para obter um token de usuário (Obtenção de um token de usuário por meio de autenticação de senha), os parâmetros da solicitação e a descrição do parâmetro podem ser obtidos na solicitação da API. O seguinte fornece um exemplo de solicitação com um corpo incluído. Substitua username, domainname, ******** (senha de logon) e xxxxxxxxxxxxxxxxxx (ID do projeto) pelos valores reais. Para saber como obter um ID de projeto, consulte Obtenção de informações sobre conta, usuário do IAM, grupo, projeto, região e agência.

O parâmetro scope especifica onde um token entra em vigor. O valor pode ser project ou domain. No exemplo anterior, o valor do scope é project, indicando que o token obtido tem efeito somente para os recursos em um projeto especificado. Se o valor do scope for domain, o token obtido entrará em vigor para todos os recursos da conta especificada. Para obter detalhes, consulte a API para obtenção de um token de usuário por meio de autenticação de senha.

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

{
    "auth": {
        "identity": {
            "methods": [
                "password"
            ],
            "password": {
                "user": {
                    "name": "username",
                    "password": "********",
                    "domain": {
                        "name": "domainname"
                    }
                }
            }
        },
        "scope": {
            "project": {
                "id": "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 codificação. No cabeçalho de resposta para a API usada para obter um token de usuário por meio de autenticação de senha, x-subject-token é o token de usuário desejado. Este token pode ser usado para autenticar a chamada de outras APIs.