Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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.

Webhooks se han renombrado a HTTPS Endpoints sin cambios en el 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.

  • To handle incoming requests from an external service, configure an incoming webhook and provide it to the service, if possible. See the incoming webhooks section on this page for an example.

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.

For instructions on using an HTTP service action, see Call a Service Action.

Nota

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

Nota

Convertir webhooks HTTP en puntos finales

HTTP Service webhoooks are deprecated in favor of custom HTTPS endpoints. You can automatically migrate your existing webhooks to endpoints in one-click. To learn how, see Convert Webhooks to HTTPS Endpoints.

Deberás proporcionar valores para los siguientes parámetros cuando configures un webhook entrante de HTTP:

You will need to provide a configuration file of the following form when you configure an HTTP incoming webhook:

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

Each incoming webhook in an HTTP service interface must have a unique name.

Respond With Result
respond_result

Required. If true, App Services sends a response to the client that called the webhook. The response body will be the return value of the webhook function.

Run Webhook As
run_as_user_id
run_as_user_id_script_source

Optional. The id of the App Services user that executes the webhook function when the webhook is called.

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: Se 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 de Atlas en forma de string que acepte la carga útil del webhook y retorne el ID de usuario en run_as_user_id_script_source. Si no especifica un ID de usuario o una función que resuelva un ID de usuario específico, App Services ejecutará la función del webhook como el usuario del sistema que tiene acceso total a las API CRUD y de agregación de MongoDB y omite todas las reglas y validación de 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 automatically passes a payload document as the first argument to incoming webhook functions. In an HTTP Service incoming webhook the payload object represents an incoming HTTP request and has the following form:

{
"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

A request sent to a webhook URL with a Content-Type: application/json header would have the following headers document:

"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