Construcción de una solicitud
Esta sección describe la estructura de una solicitud de API de REST.
URI de solicitud
OBS utiliza URI para localizar los bucket, objetos y sus parámetros específicos. Utilice URI cuando desee utilizar recursos.
A continuación se proporciona un formato de URI común. Los parámetros entre corchetes [ ] son opcionales.
protocol://[bucket.]domain[:port][/object][?param]
Parámetro |
Descripción |
Obligatorio |
---|---|---|
protocol |
Protocolo utilizado para enviar solicitudes, que pueden ser HTTP o HTTPS. HTTPS es un protocolo que garantiza un acceso seguro a los recursos. |
Sí |
bucket |
Ruta de recursos de un bucket, identificando solo un bucket en OBS |
No |
domain |
Nombre de dominio o dirección IP del servidor para ahorrar recursos |
Sí |
port |
Puerto habilitado para los protocolos utilizados para enviar solicitudes. El valor varía con el despliegue del servidor de software. Si no se especifica ningún número de puerto, el protocolo utiliza el valor predeterminado. Cada protocolo de transmisión tiene su número de puerto predeterminado. En OBS, el número de puerto HTTP predeterminado es 80 y el de HTTPS es 443. |
No |
object |
Una ruta de objeto utilizada en la solicitud |
No |
param |
Un recurso específico contenido por un bucket u objeto. El valor predeterminado de este parámetro indica que se obtiene el bucket u objeto en sí. |
No |
Todas las solicitudes de API, excepto las de la lista de buckets, deben contener el nombre del bucket. Basado en el rendimiento y confiabilidad de la resolución DNS, OBS requiere que el nombre de bucket se debe colocar delante del domain cuando se construye una solicitud que lleva un nombre de bucket para formar un nombre de dominio de tercer nivel, también mencionado como nombre de dominio de acceso de alojamiento virtual.
Por ejemplo, tiene un bucket denominado test-bucket en la región ap-southeast-1 y desea acceder a la ACL de un objeto denominado test-object en el bucket. La URL correcta es https://test-bucket.obs.ap-southeast-1.myhuaweicloud.com/test-object?acl.
Método de solicitud
Los métodos HTTP, que también se denominan operaciones o acciones, especifican el tipo de operaciones que está solicitando.
Método |
Descripción |
---|---|
GET |
Solicita al servidor que devuelva un recurso específico, por ejemplo, una lista de bucket o un objeto. |
PUT |
Solicita al servidor que actualice un recurso específico, por ejemplo, creando un bucket o cargando un objeto. |
POST |
Solicita al servidor que agregue un recurso o realice una operación especial, por ejemplo, carga o fusión de piezas. |
DELETE |
Solicita al servidor que elimine los recursos especificados, por ejemplo, un objeto. |
HEAD |
Solicita al servidor que devuelva el resumen de un recurso específico, por ejemplo, metadatos de objeto. |
OPTIONS |
El servidor de solicitudes comprueba si el usuario tiene el permiso de operación para un recurso. El CORS necesita ser configurado para el bucket. |
Encabezados de solicitud
Hace referencia a campos de solicitud opcionales y adicionales, por ejemplo, un campo requerido por un método URI o HTTP específico. Para obtener más información sobre los campos de los encabezados de solicitud comunes, consulte Tabla 3.
Encabezado |
Descripción |
Obligatorio |
---|---|---|
Authorization |
Información de firma contenida en un mensaje de solicitud Tipo: string Sin valor predeterminado. Condicional: opcional para solicitudes anónimas y requeridas para otras solicitudes. |
Requerido condicionalmente |
Content-Length |
La longitud del mensaje (excluyendo los encabezados) definida en el RFC 2616 Tipo: string Sin valor predeterminado. Condicional: opcional para las solicitudes de PUT, pero obligatoria para las solicitudes que cargan contenido XML |
Requerido condicionalmente |
Content-Type |
El tipo de contenido del recurso solicitado, por ejemplo, text/plain Tipo: string Sin valor predeterminado. |
No |
Date |
Hora en la que se inicia una solicitud, por ejemplo, Wed, 27 Jun 2018 13:39:15 +0000. Tipo: string Sin valor predeterminado. Condicional: opcional para solicitudes anónimas o aquellas solicitudes que contienen encabezado x-obs-date, requeridas para otras solicitudes. |
Requerido condicionalmente |
Host |
The host address. por ejemplo, bucketname.obs.region.myhuaweicloud.com. Tipo: string Sin valor predeterminado. |
Sí |
(Opcional) Cuerpo de solicitud
Un cuerpo de solicitud se envía generalmente en un formato estructurado (por ejemplo, JSON o XML). Corresponde a Content-Type en el encabezado de solicitud y se usa para transferir contenido distinto al encabezado de solicitud. Si el cuerpo de la solicitud contiene caracteres de ancho completo, estos caracteres deben codificarse con UTF-8.
El cuerpo de la solicitud varía según las API. Algunas API no requieren el cuerpo de la solicitud, como las API de GET y de DELETE.
Enviar una solicitud
Existen dos métodos para iniciar solicitudes en función de los mensajes de solicitud preparados:
- cURL
cURL es una herramienta de línea de comandos utilizada para realizar operaciones de URL y transmitir información. cURL actúa como un cliente HTTP que puede enviar solicitudes HTTP al servidor y recibir mensajes de respuesta. cURL es aplicable a la depuración de API. Para obtener más información sobre cURL, visite https://curl.haxx.se/. cURL no puede calcular firmas. Cuando se utiliza cURL, solo se puede acceder a los recursos OBS públicos anónimos.
- Codificación
Puede usar código para realizar invocaciones a la API y para ensamblar, enviar y procesar mensajes de solicitud. Se puede implementar mediante el uso del SDK o la codificación.