Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/ /

Serviço HTTP [Obsoleto]

Nesta página

  • Visão geral
  • Parâmetros de configuração
  • Ações de serviço
  • Webhooks recebidos
  • Configuração
  • Solicitar carga útil
  • Exemplo de função de webhook

Importante

Suspensão de serviços de terceiros e notificações push

Os serviços de terceiros e as notificações por push no App Services foram preteridos em favor da criação de pontos de extremidade HTTP que usam dependências externas em funções.

Webhooks foram renomeados e agora são chamados de pontos de conexão HTTPS sem nenhuma alteração em seu comportamento. Recomendamos migrar webhooks existentes.

Os serviços existentes continuarão a funcionar até de setembro 30 de2025.

Como os serviços de terceiros e as notificações por push agora estão obsoletos, eles foram removidos por padrão da UI do App Services. Para gerenciar um serviço de terceiros ou uma notificação por push existente, adicione as configurações de volta à UI fazendo o seguinte:

  • Na navegação à esquerda, na seção Manage, clique em App Settings.

  • Ative a chave de alternância ao lado de Temporarily Re-Enable 3rd Party Services e salve as alterações.

O Atlas App Services HTTP Service é uma interface genérica que permite que você se comunique com qualquer serviço disponível por HTTP, como aqueles que fornecem uma REST API. Isso é útil quando você precisa usar um serviço que não tem um serviço personalizado integrado ao App Services.

  • Para enviar uma solicitação de HTTP de saída, chame uma dasações de HTTPdo .

  • Para lidar com solicitações recebidas de um serviço externo, configure um webhook de entrada e forneça-o ao serviço, se possível. Consulte a seção de webhooks recebidos nesta página para obter um exemplo.

Você precisará fornecer valores para os seguintes parâmetros ao criar uma HTTP Service:

/http_endpoints/<Nome do<Service Name>serviço>/config.json
{
"name": "<Service Name>",
"type": "http",
"config": {}
}
Parâmetro
Descrição
Service Name
config.name
O nome desta interface de serviço HTTP. Isso deve ser exclusivo de todas as outras interfaces de serviço em seu aplicativo.

O HTTP Service no App Services fornece as seguintes ações que você pode chamar em funções e nos SDKs. Cada ação mapeia para um método de solicitação HTTP padrão.

Para obter instruções sobre como usar uma ação do HTTP Service, consulte Chamar uma ação.

Observação

Você deve habilitar uma ação de serviço em uma regra de serviço antes de chamá-la.

Observação

Converter webhooks HTTP em endpoints

Os webhooks do HTTP Service foram preteridos em favor dos HTTPS endpoints personalizados. Você pode migrar automaticamente seus webhooks existentes para endpoints com um clique. Para saber como, consulte Converter webhooks em HTTPS endpoints.

Você precisará fornecer valores para os seguintes parâmetros ao configurar um webhook de entrada HTTP:

Você precisará fornecer um arquivo de configuração do seguinte formulário ao configurar um webhook de entrada HTTP:

http_endpoints/<Nome do<Service Name>serviço>/<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 da configuração
Descrição
Webhook Name
name

Obrigatório. O nome do webhook.

Observação

Cada webhook de entrada em uma interface de HTTP Service deve ter um nome exclusivo.

Respond With Result
respond_result
Obrigatório. Se true, o App Services envia uma resposta ao cliente que chamou o webhook. O corpo da resposta será o valor de retorno da função do webhook.
Run Webhook As
run_as_user_id
run_as_user_id_script_source

Opcional. A ID do usuário do App Services que executa a função do webhook quando o webhook é chamado.

Existem três maneiras de configurar o usuário de execução:

  • System: O usuário de execução é o usuário do sistema, que tem acesso total às APIs de Agregação e CRUD do MongoDB e ignora todas as regras e validação de esquema.

  • User Id: Selecione um usuário específico do aplicativo para executar a função.

  • Script: você define uma função que retorna o id do usuário de execução.

Você pode especificar o ID do usuário diretamente no run_as_user_id ou fornecer uma Atlas Function em string que aceita a carga útil do webhook e retorna o ID do usuário no run_as_user_id_script_source. Se você não especificar um ID de usuário específico ou uma função que resolva para um ID de usuário, o App Services executará a função de webhook como o usuário do sistema que tem acesso total às APIs de agregação e CRUD do MongoDB e ignora todas as regras e validação de esquema.

HTTP Method
options.httpMethod

O método HTTP que as solicitações de webhook recebidas devem usar. Você pode configurar um webhook para aceitar qualquer método ou especificar um método específico. Os seguintes métodos são aceitos:

  • GET

  • POST

  • PUT

  • PATCH

  • DELETE

  • HEAD

  • ANY

Request Validation
options.validationMethod

O método de validação de solicitação que as solicitações de entrada devem usar. Os seguintes tipos de validação são aceitos:

Secret
options.secret
Se Request Validation estiver habilitado, este é o segredo de validação.

O App Services passa automaticamente um documento payload como o primeiro argumento para as funções de entrada do webhook. Em um webhook de entrada do HTTP Service, o objeto payload representa uma solicitação HTTP de entrada e tem o seguinte formato:

{
"query": <query parameters>,
"headers": <request headers>,
"body": <request body (BSON)>
}
Campo
Descrição
query

Um documento onde cada campo corresponde a um parâmetro de query que o serviço externo incluído no URL do webhook .

Exemplo

Uma solicitação enviada para uma URL de webhook com os query someParameter=42&anotherParameter=hello teria o seguinte documento query :

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

Um documento onde cada campo corresponde a um cabeçalho HTTP que o serviço externo incluído no URL do webhook .

Exemplo

Uma solicitação enviada para uma URL de webhook com um cabeçalho Content-Type: application/json teria o seguinte documento headers :

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

Um objeto BSON.Binary codificado a partir do corpo da solicitação. Você pode acessar o corpo da solicitação serializando o objeto binário em uma string e, em seguida, analisando a string para EJSON:

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

A função de webhook a seguir insere dados recebidos em uma collection MongoDB e retorna o insertedId na resposta 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);
})
};

Voltar

Configurar regras de serviço