Hacer una solicitud de API
Esta sección describe cómo realizar una solicitud de API de REST y utiliza la API de IAM para obtener un token de usuario como ejemplo para describir cómo llamar a una API. El token obtenido se utiliza para autenticar la llamada de otras API.
Solicitud de URI
Un URI de solicitud tiene el siguiente formato:
{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}
Aunque se incluye un URI de solicitud en una cabecera de solicitud, la mayoría de los lenguajes de programación o marcos requieren que el URI de solicitud se transmita por separado, en lugar de ser transportado en un mensaje de solicitud.
- URI-scheme:
Protocolo utilizado para transmitir solicitudes. Todas las API usan HTTPS.
- Endpoint:
Nombre de dominio o dirección IP del servidor que lleva el punto de conexión del servicio REST. Obtenga el valor de Regions y puntos de conexión.
Por ejemplo, el punto final de IAM en la región CN-Hong Kong es iam.ap-southeast-1.myhuaweicloud.com.
- resource-path:
Ruta de acceso a la API para realizar una operación especificada. Obtener el valor del URI de la API. Por ejemplo, la resource-path de la API para obtener un token de usuario es /v3/auth/tokens.
- query-string:
Parámetro de consulta, que es opcional. No todas las API tienen un parámetro de consulta. Asegúrese de que se incluye un signo de interrogación (?) antes de un parámetro de consulta con el formato "Nombre de parámetro=Valor de parámetro". Por ejemplo, ? limit=10 indica que un máximo de 10 fragmentos de datos deben ser vistos.
Por ejemplo, para obtener un token IAM en la región CN-Hong Kong, obtenga el punto final de IAM (iam.ap-southeast-1.myhuaweicloud.com) para esta región y la ruta de resource-path (/v3/auth/tokens) en el URI de la API utilizada para obtener un token de usuario. A continuación, construya el URI de la siguiente manera:
1
|
https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/tokens |
Para simplificar la visualización de URI, cada API se proporciona solo con una resource-path y un método de solicitud. Esto se debe a que el valor de URI-scheme de todas las API es HTTPS, y los puntos de conexión de un servicio son los mismos en una región. Por lo tanto, se omiten las dos partes.
Métodos de solicitud
Los métodos de solicitud basados en HTTP, que también se denominan operaciones o acciones, especifican el tipo de operaciones que está solicitando.
- GET: solicita al servidor que devuelva los recursos especificados.
- PUT: solicita al servidor que actualice los recursos especificados.
- POST: solicita al servidor que añada recursos o realice operaciones especiales.
- DELETE: solicita al servidor que elimine los recursos especificados, por ejemplo, un objeto.
- HEAD: solicita un encabezado de recurso de servidor.
- PATCH: solicita al servidor que actualice el contenido parcial de un recurso especificado. Si el recurso no está disponible, se utiliza el método PATCH para crear un recurso.
Por ejemplo, en el URI para obtener un token de usuario, el método de solicitud es POST. y la solicitud es la siguiente:
POST https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/tokens
Encabezado de la solicitud
También puede agregar campos adicionales a una solicitud, como los campos requeridos por un URI especificado o un método HTTP. Por ejemplo, agregue Content-Type que define un tipo de cuerpo de solicitud para solicitar la información de autenticación.
Los encabezados de solicitud comunes son los siguientes:
- Content-Type: especifica el tipo o formato del cuerpo de la solicitud. Este campo es obligatorio y su valor predeterminado es application/json. Para otros valores, la descripción se proporcionará para API específicas.
- X-Auth-Token: especifica un token de usuario solo para la autenticación API basada en tokens. El token de usuario es una respuesta a la API usada para obtener un token de usuario. Esta API es la única que no requiere autenticación.
Además de admitir la autenticación mediante tokens, las API de DCS admiten la autenticación mediante AK/SK, que utiliza SDK para firmar una solicitud. Durante la firma, los encabezados Authorization (autenticación de firma) y X-Sdk-Date (hora en que se envía una solicitud) se agregan automáticamente en la solicitud.
Para más detalles, consulte Autenticación usando AK/SK
La API para obtener un token de usuario no requiere autenticación. Por lo tanto, esta API solo requiere agregar el campo Content-Type. La solicitud con el encabezado Content-Type agregado es la siguiente:
POST https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
Cuerpo de la solicitud
El cuerpo de una solicitud se envía a menudo en un formato estructurado como se especifica en el campo de encabezado Content-Type. El cuerpo de la solicitud transfiere contenido excepto el encabezado de la solicitud.
El cuerpo de la solicitud varía según las API. Algunas API no requieren el cuerpo de la solicitud, como las API GET y DELETE.
En el caso de la API usada para obtener un token de ususario, los parámetros de solicitud y la descripción de parámetros se pueden obtener a partir de la solicitud de API. A continuación se proporciona una solicitud de ejemplo con un cuerpo incluido. Reemplazar username, domainname, ******** (login password), and xxxxxxxxxxxxxxxxxx (project IDsuch as ap-southeast-1) con los valores reales. Obtener el ID del proyecto en la columna Region de Regions y puntos de conexión.
scope especifica dónde surte efecto un token. En el siguiente ejemplo, el token solo tiene efecto en los recursos especificados por el ID del proyecto. Puede establecer el ámbito en una cuenta o un proyecto bajo una cuenta. Para detalles, consulte obtención del token de usuario.
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": { "name": "xxxxxxxxxxxxxxxxxx" } } } }
Si todos los datos requeridos por una solicitud están disponibles, puede enviar la solicitud para llamar a una API a través de curl, Postman, or coding. Para la API de obtención de un token de usuario, x-subject-token en el encabezado de respuesta es el token de usuario deseado. A continuación, puede usar el token para autenticar la llamada de otras API.