Cargo-Planner Docs
Comunicación bidireccional
Un patrón de uso frecuente es que envíes algunos datos de entrada a nuestra API, nosotros hacemos los cálculos y luego se te presentará un resultado, que puedes integrar en tu aplicación.
A veces deseas hacer algunas reorganizaciones manualmente, donde podrías querer eliminar algunas cargas de un contenedor y agregar otras. Cuando hayas hecho ese tipo de modificaciones, sería genial que tu aplicación también obtuviera esos cambios; deseas que Cargo-Planner interactúe también con tu sistema. Entonces querrás agregar algunos webhooks.
Webhooks
Los webhooks son básicamente puntos de conexión que configuras para suscribirte a ciertos eventos.
Digamos que tan pronto como un plan de carga se guarda/actualiza por ti, deseas que este resultado se envíe a tu servidor. Así es como logras eso:

- Ve al portal de Desarrolladores en la aplicación web
- Expande la sección de webhooks
- Presiona crear webhook
- Ingresa la URL a la que deseas que se publiquen los datos, así como selecciona a qué evento deseas suscribirte
- Presiona guardar
Escuchando eventos
En tu servidor, agrega un punto de conexión, el mismo que especificaste en la sección de URL arriba al crear el punto de conexión
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" # Agrega el secreto generado para tu punto de conexión
expected_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
if hmac.compare_digest(f'sha256={expected_signature}', received_signature):
# Procesar la carga útil
return "Payload processed", 200
else:
abort(403, 'Signature verification failed')
if __name__ == '__main__':
app.run()
Al crear un webhook, recibirás un secreto que puedes usar en tu servidor para asegurarte de que los datos realmente provienen de Cargo-Planner.