Cargo-Planner Docs
İki yönlü iletişim
Sık kullanılan bir model, bazı giriş verilerini API’mıza göndermeniz, biz sayısal hesaplamaları yaparız ve ardından uygulamanıza yerleştirebileceğiniz bir sonuç sunulur.
Bazen bir konteynerden bazı yükleri silmek ve bazılarını eklemek isteyebileceğiniz manuel düzenlemeler yapmak istersiniz. Bu tür değişiklikler yaptığınızda, uygulamanızın da bu değişiklikleri alması harika olurdu - Cargo-Planner’ın sisteminizle etkileşimde bulunmasını istersiniz. O zaman bazı web kancaları eklemek isteyeceksiniz.
Web Kancaları
Web kancaları, belirli olaylara abone olmak için ayarladığınız uç noktalardır.
Diyelim ki bir yük planı sizin tarafınızdan kaydedildiğinde/güncellendiğinde, bu sonucun sunucunuza gönderilmesini istiyorsunuz. Bunu şu şekilde başarabilirsiniz:

- Web uygulamasındaki Geliştirici portalına gidin
- Web kancaları bölümünü genişletin
- Web kancası oluştur düğmesine basın
- Verilerin gönderileceği URL’yi girin ve abone olmak istediğiniz olayı seçin
- Kaydet düğmesine basın
Olayları Dinleme
Sunucunuzda, yukarıdaki URL bölümünde uç noktayı oluştururken belirttiğinizle aynı uç noktayı ekleyin
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" # Uç noktanız için oluşturulan gizli anahtarı ekleyin
expected_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
if hmac.compare_digest(f'sha256={expected_signature}', received_signature):
# Yükü işleyin
return "Payload processed", 200
else:
abort(403, 'Signature verification failed')
if __name__ == '__main__':
app.run()
Bir web kancası oluşturduğunuzda, verilerin gerçekten Cargo-Planner’dan geldiğinden emin olmak için sunucunuzda kullanabileceğiniz bir gizli anahtar alacaksınız.