Definición
Envía un Obtener HTTPsolicitud a la URL especificada mediante el servicio HTTP de Atlas App Services.
Uso
Ejemplo
Nota
Este ejemplo asume que ha configurado un servicio HTTP llamado "myHttp". Si no necesita validar esta acción HTTP con las reglas de servicio, puede usar el módulo "Enviar una solicitud HTTP"context.http ().
exports = function() { const http = context.services.get("myHttp"); return http .get({ url: "https://www.example.com/users" }) .then(response => { // The response body is encoded as raw BSON.Binary. Parse it to JSON. const ejson_body = EJSON.parse(response.body.text()); return ejson_body; }) };
Parámetros
La acción http.get() acepta un argumento de la siguiente forma:
{ "url": <string>, "headers": <document>, "cookies": <string>, "digestAuth": <boolean>, "authUrl": <string>, "followRedirects": <boolean> }
Campo | Descripción | |||
|---|---|---|---|---|
Request URL url: <string> | Obligatorio. La URL de destino de la solicitud HTTP. Como alternativa, puede especificar los componentes de la URL como campos de nivel raíz. Consulte Argumentos de URL alternativos. | |||
Request Headers headers: <document> | Opcional. Un documento en el que cada nombre de campo corresponde a un tipo de encabezado HTTP y cada valor de campo es un arreglo de uno o más valores de string para ese encabezado. Ejemplo | |||
Request Cookies cookies: <document> | Opcional. Un documento donde cada nombre de campo corresponde a un nombre de cookie y cada valor de campo es el valor de cadena de esa cookie. Ejemplo | |||
Digest Authentication digestAuth: <boolean> | Opcional. Si | |||
Request Authentication URL authUrl: <string> | Opcional. Una URL que devuelve una cookie de autorización para la solicitud HTTP. | |||
Follow Redirects followRedirects: <boolean> | Opcional. Si es |
Parámetros de URL alternativos
Si necesita especificar los componentes individuales de la URL de destino de la solicitud, omita el campo url y especifique los componentes como campos de nivel raíz. Están disponibles los siguientes campos de componentes de URL:
<scheme>://<host>/<path>?<query>#<fragment>
{ "scheme": <string>, "host": <string>, "path": <string>, "query": <document>, "fragment": <string>, "username": <string>, "password": <string> }
Nombre | Contenido | |||||||
|---|---|---|---|---|---|---|---|---|
| Optional. Default: "http".Valid options: https, httpEl esquema de URL. Ejemplo | |||||||
| Required. El nombre de host del recurso de destino. Ejemplo | |||||||
| Optional. La ruta del recurso de destino. Ejemplo | |||||||
| Optional. Un documento donde cada campo se asigna a un parámetro en la cadena de consulta de la URL. El valor de cada campo es una matriz de cadenas que contiene todos los argumentos del parámetro. Ejemplo | |||||||
| Optional. El fragmento de URL. Esta parte de la URL incluye todo lo que aparece después del símbolo numeral ( Ejemplo | |||||||
| Optional. El nombre de usuario con el que se autenticará la solicitud. Normalmente, los usuarios utilizan este argumento junto con el argumento | |||||||
| Optional. La contraseña para autenticar la solicitud. Debe corresponder al usuario especificado en el argumento |
Valor de retorno
La acción http.get() devuelve una promesa que se resuelve en un documento con el siguiente formato:
{ "status": <string>, "statusCode": <integer>, "contentLength": <integer>, "headers": <document>, "cookies": <array>, "body": <binary> }
Campo | Tipo | Descripción | |||
|---|---|---|---|---|---|
| string | El mensaje de estado de la solicitud HTTP. | |||
| entero | El código de estado de la solicitud HTTP. | |||
| entero | El número de bytes devueltos en la respuesta | |||
| Documento | Un documento donde cada nombre de campo corresponde a un tipo de encabezado HTTP y cada valor de campo es una matriz de uno o más valores de cadena para ese encabezado. Ejemplo | |||
| Documento | Un documento donde cada nombre de campo corresponde a un nombre de cookie, y cada valor de campo es el valor de cadena de esa cookie. Ejemplo | |||
| Binario | El cuerpo codificado en binario de la respuesta HTTP. |
Solicitar autenticación
Puede autenticar una solicitud HTTP saliente mediante uno de los esquemas de autenticación HTTP estándar. Atlas App Services admite los siguientes esquemas de autenticación:
Autenticación básica
La autenticación básica HTTP requiere que las solicitudes entrantes incluyan un nombre de usuario y una contraseña válidos para el servicio solicitado. Puede especificar las credenciales de usuario en los username campos y password del documento de solicitud, directamente url en una cadena o en un encabezado HTTP de autorización.
Ejemplo
Los siguientes ejemplos demuestran tres formas equivalentes de autenticar una solicitud de HTTP service utilizando la autenticación básica. Todos los ejemplos utilizan el nombre de usuario MyUser y la contraseña Mypassw0rd. Se pasaría uno de estos objetos como argumento al método HTTP indicado.
{ "scheme": "https", "username": "MyUser", "password": "Mypassw0rd", "domain": "www.example.com" }
{ "url": "https://MyUser:Mypassw0rd@www.example.com" }
{ "url": "https://www.example.com", "headers": { "Authorization": [ `Basic ${BSON.Binary.fromText("MyUser:Mypassw0rd").toBase64()}` ] } }
Autenticación digest
La autenticación de resumen HTTP requiere que las solicitudes entrantes incluyan una clave de autorización basada en un valor nonce aleatorio devuelto por el servidor. App Services puede construir automáticamente la clave y autorizar las solicitudes con un nombre de usuario y una contraseña válidos.
Para configurar una solicitud para utilizar la autenticación de resumen, establezca el campo digestAuth en true y especifique las credenciales del usuario en los campos username y password del documento de solicitud o directamente en una cadena url.
Ejemplo
Los siguientes ejemplos demuestran dos formas equivalentes de autenticar una solicitud de servicio HTTP utilizando autenticación por suma de comprobación. Todos los ejemplos utilizan el nombre de usuario MyUser y la clave Mypassw0rd.
{ "scheme": "https", "username": "MyUser", "password": "Mypassw0rd", "domain": "www.example.com", "digestAuth": true }
{ "url": "https://MyUser:Mypassw0rd@www.example.com", "digestAuth": true }
Plantillas de reglas
Los usuarios solo pueden enviar solicitudes a un host específico
{ "%%args.url.host": "example.com" }
Las URL de las solicitudes deben incluir un parámetro de consulta específico
{ "%%args.url.query.someParameter": "importantValue" }
Las solicitudes deben ser a una ruta específica
{ "%%args.url.scheme: "https", "%%args.url.host" : "www.example.com", "%%args.url.path" : "/api/v1.0/messages" }