Cargo-Planner Docs
Zwei-Wege-Kommunikation
Ein häufiges Nutzungsmuster ist, dass Sie einige Eingabedaten an unsere API senden, wir die Berechnungen durchführen und Ihnen dann ein Ergebnis präsentiert wird, das Sie in Ihre Anwendung einbetten können.
Manchmal möchten Sie manuell einige Umstellungen vornehmen, bei denen Sie möglicherweise einige Ladungen aus einem Container löschen und andere hinzufügen möchten. Wenn Sie solche Änderungen vorgenommen haben, wäre es großartig, wenn Ihre Anwendung diese Änderungen ebenfalls erhält - Sie möchten, dass Cargo-Planner auch mit Ihrem System interagiert. Dann möchten Sie einige Webhooks hinzufügen.
Webhooks
Webhooks sind im Grunde Endpunkte, die Sie einrichten, um sich für bestimmte Ereignisse zu abonnieren.
Angenommen, sobald ein Ladeplan von Ihnen gespeichert/aktualisiert wird, möchten Sie, dass dieses Ergebnis an Ihren Server gesendet wird. So erreichen Sie das:

- Gehen Sie zum Entwicklerportal in der Webanwendung
- Erweitern Sie den Abschnitt Webhooks
- Drücken Sie auf Webhook erstellen
- Geben Sie die URL ein, an die die Daten gesendet werden sollen, und wählen Sie aus, für welches Ereignis Sie sich abonnieren möchten
- Drücken Sie auf Speichern
Ereignisse abhören
Fügen Sie auf Ihrem Server einen Endpunkt hinzu, derselbe wie der, den Sie im obigen URL-Abschnitt beim Erstellen des Endpunkts angegeben haben
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" # Fügen Sie das für Ihren Endpunkt generierte Geheimnis hinzu
expected_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
if hmac.compare_digest(f'sha256={expected_signature}', received_signature):
# Verarbeiten Sie das Payload
return "Payload processed", 200
else:
abort(403, 'Signature verification failed')
if __name__ == '__main__':
app.run()
Beim Erstellen eines Webhooks erhalten Sie ein Geheimnis, das auf Ihrem Server verwendet werden kann, um sicherzustellen, dass die Daten tatsächlich von Cargo-Planner stammen.