Cargo-Planner Docs
Communication bidirectionnelle
Un modèle d’utilisation fréquent est que vous envoyiez des données d’entrée à notre API, nous effectuons les calculs et vous obtiendrez ensuite un résultat, que vous pouvez intégrer dans votre application.
Parfois, vous souhaitez effectuer manuellement quelques réarrangements où vous pourriez vouloir supprimer certains chargements d’un conteneur, et en ajouter d’autres. Lorsque vous avez effectué ce type de modifications, il serait idéal que votre application reçoive également ces changements - vous voulez que Cargo-Planner interagisse également avec votre système. Vous voudrez alors ajouter des webhooks.
Webhooks
Les webhooks sont essentiellement des points de terminaison que vous configurez pour vous abonner à certains événements.
Disons que dès qu’un plan de chargement est enregistré / mis à jour par vous, vous souhaitez que ce résultat soit envoyé à votre serveur. Voici comment vous y parvenez :

- Allez dans le portail Développeur de l’application web
- Développez la section des webhooks
- Appuyez sur créer un webhook
- Entrez l’URL à laquelle vous souhaitez que les données soient envoyées ainsi que l’événement auquel vous souhaitez vous abonner
- Appuyez sur enregistrer
Écouter les événements
Sur votre serveur, ajoutez un point de terminaison, identique à celui que vous avez spécifié dans la section URL ci-dessus lors de la création du point de terminaison
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" # Ajoutez le secret généré pour votre point de terminaison
expected_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
if hmac.compare_digest(f'sha256={expected_signature}', received_signature):
# Traitez le payload
return "Payload processed", 200
else:
abort(403, 'Échec de la vérification de la signature')
if __name__ == '__main__':
app.run()
Lors de la création d’un webhook, vous recevrez un secret qui peut être utilisé sur votre serveur pour vous assurer que les données proviennent bien de Cargo-Planner.