Cargo-Planner Docs
Tvåvägskommunikation
Ett vanligt användningsmönster är att du skickar indata till vårt API, vi gör beräkningarna och du får sedan ett resultat som du kan bädda in i din applikation.
Ibland vill du manuellt göra några omarrangemang där du kanske vill ta bort några artiklar från en container, och några andra. När du har gjort sådana ändringar skulle det vara bra om din applikation också fick dessa ändringar - du vill att Cargo-Planner ska interagera med ditt system också. Då vill du lägga till några webhooks.
Webhooks
Webhooks är i princip slutpunkter som du ställer in för att prenumerera på vissa händelser.
Låt oss säga att så snart en lastplan sparas/uppdateras av dig, vill du att detta resultat ska skickas till din server. Så här uppnår du det:

- Gå till utvecklarportalen i webbapplikationen
- Expandera avsnittet för webhooks
- Tryck på skapa webhook
- Ange URL:en du vill att datan ska skickas till samt välj vilken händelse du vill prenumerera på
- Tryck på spara
Lyssna på händelser
På din server, lägg till en slutpunkt, samma som den du angav i URL-sektionen ovan när du skapade slutpunkten
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" # Lägg till den hemlighet som genererats för din slutpunkt
expected_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
if hmac.compare_digest(f'sha256={expected_signature}', received_signature):
# Bearbeta payload
return "Payload bearbetad", 200s
else:
abort(403, 'Signaturverifiering misslyckades')
if __name__ == '__main__':
app.run()
När du skapar en webhook kommer du att få en hemlighet som kan användas på din server för att säkerställa att datan faktiskt kommer från Cargo-Planner.