Docs Menu
Docs Home
/ /
Servicios de terceros

Servicio HTTP

Importante

Servicios de terceros y notificaciones push obsoletos

Los servicios de terceros y las notificaciones push en App Services han quedado obsoletos en favor de la creación de puntos finales HTTP que usan dependencias externas en funciones.

Los webhooks se han renombrado como puntos finales HTTPS sin cambios en su comportamiento. Debe migrar los webhooks existentes.

Los servicios existentes continuarán funcionando hasta el de septiembre 30 2025de.

Dado que los servicios de terceros y las notificaciones push ya no se utilizan, se han eliminado de forma predeterminada de la interfaz de usuario de App Services. Si necesita administrar un servicio de terceros o una notificación push existente, puede volver a agregar las configuraciones a la interfaz de usuario siguiendo estos pasos:

  • En la navegación izquierda, debajo del Manage sección, haga clic en App Settings.

  • Habilite el interruptor junto a Temporarily Re-Enable 3rd Party Services y luego guarde los cambios.

El Atlas App Services HTTP Service es una interfaz genérica que permite comunicarse con cualquier servicio disponible a través de HTTP, como aquellos que proporcionan una REST API. Esto es útil cuando necesitas usar un servicio que no cuenta con un servicio personalizado funcionalidad incorporada a aplicación Services.

  • Para enviar una solicitud HTTP saliente, llame a uno de los Acciones HTTP.

  • Para gestionar las solicitudes entrantes de un servicio externo, configure un webhook entrante y proporciónelo al servicio, si es posible. Consulte la sección de webhooks entrantes en esta página para ver un ejemplo.

Necesitará proporcionar valores para los siguientes parámetros cuando cree una interfaz de servicio HTTP:

/http_endpoints/<Service Name>/config.json
{
"name": "<Service Name>",
"type": "http",
"config": {}
}
Parameter
Descripción
Service Name
config.name

El nombre de esta interfaz de servicio HTTP. Debe ser único respecto a las demás interfaces de servicio de la aplicación.

El servicio HTTP de App Services ofrece las siguientes acciones, que se pueden ejecutar en funciones y en los SDK. Cada acción se asigna a un método de solicitud HTTP estándar.

Para obtener instrucciones sobre el uso de una acción de servicio HTTP,consulte Llamar a una acción de servicio.

Nota

Debe habilitar una acción de servicio en una regla de servicio antes de poder llamarla.

Nota

Convertir webhooks HTTP en puntos finales

Los webhooks de servicio HTTP están obsoletos y se sustituyen por endpoints HTTPS personalizados. Puede migrar automáticamente sus webhooks existentes a endpoints con un solo clic. Para saber cómo, consulte Convertir webhooks a endpoints HTTPS.

Necesitará proporcionar valores para los siguientes parámetros cuando configure un webhook entrante HTTP:

Necesitará proporcionar un archivo de configuración con el siguiente formato cuando configure un webhook entrante HTTP:

http_endpoints/<Service Name>/<Webhook Name>/config.json
{
"name": "<Webhook Name>",
"can_evaluate": { <JSON Expression> },
"run_as_authed_user": <Boolean>,
"run_as_user_id": "<App Services User ID>",
"run_as_user_id_script_source": "<Function Source Code>",
"respond_result": <Boolean>,
"fetch_custom_user_data": <Boolean>,
"create_user_on_auth": <Boolean>,
"options": {
"httpMethod": "<HTTP Method>",
"validationMethod": "<Webhook Validation Method>",
"secret": "<Webhook Secret>"
}
}
Valor de configuración
Descripción
Webhook Name
name

Obligatorio. El nombre del webhook.

Nota

Cada webhook entrante en una interfaz de servicio HTTP debe tener un nombre único.

Respond With Result
respond_result

Obligatorio. Si es true, App Services envía una respuesta al cliente que llamó al webhook. El cuerpo de la respuesta será el valor de retorno de la función del webhook.

Run Webhook As
run_as_user_id
run_as_user_id_script_source

Opcional. El ID del usuario de App Services que ejecuta la función de webhook cuando se llama a este.

Existen tres formas de configurar el usuario de ejecución:

  • System:El usuario de ejecución es el usuario del sistema, que tiene acceso completo a las API de CRUD y agregación de MongoDB y omite todas las reglas y la validación del esquema.

  • User Id:Selecciona un usuario de aplicación específico para ejecutar la función.

  • Script:Define una función que devuelve el id del usuario de ejecución.

Puede especificar el ID de usuario directamente en run_as_user_id o proporcionar una función Atlas convertida en cadena que acepte la carga útil del webhook y devuelva el ID de usuario run_as_user_id_script_source en. Si no especifica un ID de usuario específico ni una función que lo resuelva, App Services ejecuta la función del webhook como el usuario del sistema con acceso completo a las API CRUD y de agregación de MongoDB, y omite todas las reglas y la validación del esquema.

HTTP Method
options.httpMethod

El método HTTP que deben usar las solicitudes de webhook entrantes. Puede configurar un webhook para que acepte cualquier método o especificar uno específico. Se admiten los siguientes métodos:

  • GET

  • POST

  • PUT

  • PATCH

  • DELETE

  • HEAD

  • ANY

Request Validation
options.validationMethod

El método de validación que deben utilizar las solicitudes entrantes. Se admiten los siguientes tipos de validación:

Secret
options.secret

Si Request Validation está habilitado, este es el secreto de validación.

App Services pasa automáticamente un documento payload como primer argumento a las funciones de webhook entrantes. En un webhook entrante de un servicio HTTP, el objeto payload representa una solicitud HTTP entrante y tiene el siguiente formato:

{
"query": <query parameters>,
"headers": <request headers>,
"body": <request body (BSON)>
}
Campo
Descripción

query

Un documento donde cada campo corresponde a un parámetro de consulta que el servicio externo incluyó en la URL del webhook.

Ejemplo

Una solicitud enviada a una URL de webhook con los parámetros de consulta someParameter=42&anotherParameter=hello tendría el siguiente documento query:

"query": {
"someParameter": 42,
"anotherParameter": "hello"
}

headers

Un documento donde cada campo corresponde a un encabezado HTTP que el servicio externo incluyó en la URL del webhook.

Ejemplo

Una solicitud enviada a una URL de webhook con un encabezado Content-Type: application/json tendría el siguiente documento headers:

"headers": {
"Content-Type": ["application/json"]
}

body

Un objeto BSON.Binary codificado a partir del cuerpo de la solicitud. Puedes acceder al cuerpo de la solicitud serializando el objeto binario en una string y luego convirtiendo la string a EJSON:

const body = EJSON.parse(payload.body.text())

La siguiente función de webhook inserta datos entrantes en una colección MongoDB y devuelve insertedId en la respuesta body.

exports = function(payload, response) {
const mongodb = context.services.get("mongodb-atlas");
const requestLogs = mongodb.db("test").collection("requestlogs");
requestLogs.insertOne({
body: EJSON.parse(payload.body.text()),
query: payload.query
}).then(result => {
response.setStatusCode(201);
response.setBody(result.insertedId);
})
};

Volver

Configurar reglas de servicio

En esta página