Serviço HTTP [Obsoleto]
Nesta página
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.
Visão geral
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.
Parâmetros de configuração
Você precisará fornecer valores para os seguintes parâmetros ao criar uma HTTP Service:
{ "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. |
Ações de serviço
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.
em ação | Descrição |
---|---|
Enviar um GET HTTP solicitar. | |
Enviar um POST HTTP solicitar. | |
Enviar um HTTP PUT solicitar. | |
Enviar um PATCH HTTP solicitar. | |
Enviar um HTTP DELETE solicitar. | |
Enviar um HEAD HTTP solicitar. |
Webhooks recebidos
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.
Configuração
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:
{ "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çãoCada 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:
Você pode especificar o ID do usuário diretamente no |
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:
|
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. |
Solicitar carga útil
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 . ExemploUma solicitação enviada para uma URL de webhook com os query
| ||||
headers | Um documento onde cada campo corresponde a um cabeçalho HTTP que o serviço externo incluído no URL do webhook . ExemploUma solicitação enviada para uma URL de webhook com um cabeçalho
| ||||
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:
|
Exemplo de função de webhook
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); }) };