Cargo-Planner Docs

Comunicação bidirecional

Um padrão de uso frequente é que você envie alguns dados de entrada para nossa API, nós fazemos o processamento e então você será apresentado a um resultado, que pode ser incorporado em sua aplicação.

Às vezes, você quer fazer algumas reorganizações manualmente, onde pode querer excluir algumas cargas de um contêiner e adicionar outras. Quando você faz esse tipo de modificação, seria ótimo se sua aplicação também recebesse essas mudanças - você quer que o Cargo-Planner interaja com seu sistema também. Então, você vai querer adicionar alguns webhooks.

Webhooks

Webhooks são basicamente endpoints que você configura para se inscrever em certos eventos.

Digamos que assim que um plano de carga for salvo/atualizado por você, você queira que esse resultado seja enviado para o seu servidor. É assim que você consegue isso:

Creating a webhook

  1. Vá para o portal do Desenvolvedor na aplicação web
  2. Expanda a seção de webhooks
  3. Pressione criar webhook
  4. Insira a URL para a qual você deseja que os dados sejam enviados, bem como selecione qual evento você deseja se inscrever
  5. Pressione salvar

Ouvindo eventos

No seu servidor, adicione um endpoint, igual ao que você especificou na seção de URL acima ao criar o endpoint


from flask import Flask, request, abort
import hmac
import hashlib

app = Flask(__name__)

@app.route('/events-from-cargoplanner/', methods=['POST'])
def receive_webhook():
    payload = request.get_data(as_text=True)
    received_signature = request.headers.get('X-Hub-Signature')

    secret = "_nf7TmrgTJt6Gk43d9aSAK_yOEE58KXlTgvotei3Xe4"  # Adicione o segredo gerado para o seu endpoint

    expected_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()

    if hmac.compare_digest(f'sha256={expected_signature}', received_signature):
        # Processar o payload
        return "Payload processed", 200
    else:
        abort(403, 'Falha na verificação da assinatura')

if __name__ == '__main__':
    app.run()

Ao criar um webhook, você receberá um segredo que pode ser usado no seu servidor para garantir que os dados realmente venham do Cargo-Planner.