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 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:

Erstellen eines Webhooks

  1. Gehen Sie zum Entwicklerportal in der Webanwendung
  2. Erweitern Sie den Webhooks-Bereich
  3. Drücken Sie auf “Webhook erstellen”
  4. Geben Sie die URL ein, an die die Daten gesendet werden sollen, und wählen Sie aus, welches Ereignis Sie abonnieren möchten
  5. 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"  # Add the secret generated for your endpoint

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

    if hmac.compare_digest(f'sha256={expected_signature}', received_signature):
        # Process the 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.