Criação de 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 obter um token de usuário (Obtenção de um token de usuário por meio da autenticação de senha) como um exemplo para demonstrar como chamar uma API. O token obtido pode então ser usado para autenticar a chamada das outras APIs.
URI de solicitação
Um URI de solicitação está no seguinte formato:
{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}
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 final 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, opcional. Verifique se um ponto de interrogação (?) está incluído antes de cada parâmetro de consulta 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 IAM na região CN-Hong Kong, obtenha o endpoint (iam.ap-southeast-1.myhuaweicloud.com) do IAM para essa região e o resource-path (/v3/auth/tokens) no URI da API (Obtenção de um token de usuário por meio da 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
![](https://support.huaweicloud.com/intl/pt-br/api-iam/public_sys-resources/note_3.0-pt-br.png)
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 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 (Obtenção de um token de usuário por meio da autenticação de senha), o método de solicitação é POST. A solicitação é o 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 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.
- X-Auth-Token: especifica um token de usuário apenas para autenticação de API baseada em token. X-Auth-Token é uma resposta à API usada para obter um token de usuário (Obtenção de um token de usuário por meio da 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 (Obtenção de um token de usuário por meio da autenticação de senha) não requer autenticação. Portanto, apenas o campo Content-typeprecisa 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 da autenticação de senha), 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, ******** (senha de login) e xxxxxxxxxxxxxxxxxx (ID do projeto) pelos valores reais. Para saber como obter um ID de projeto, consulte Obtenção de informações de conta, usuário do IAM, grupo, projeto, região e agência.
![](https://support.huaweicloud.com/intl/pt-br/api-iam/public_sys-resources/note_3.0-pt-br.png)
O parâmetro scope especifica onde um token entra em vigor. Você pode definir scope para um projeto ou um domínio. Quando você define scope como um domínio, o token entra em vigor para todos os recursos no domínio especificado. No exemplo a seguir, o token tem efeito somente para os recursos no projeto especificado. Para obter mais detalhes sobre essa API, consulte Obtenção de um token de usuário por meio da 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 coding. Na resposta à API usada para obter um token de usuário (Obtenção de um token de usuário por meio da autenticação de senha), x-subject-token é o token de usuário desejado. Esse token pode ser usado para autenticar a chamada de outras APIs.