Cargo-Planner Docs
İki Yönlü İletişim
Sık kullanılan bir model, bazı giriş verilerini API’mize 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 yeniden düzenlemeler yapmak istersiniz. Bu tür değişiklikleri yaptığınızda, uygulamanızın da bu değişiklikleri alması harika olurdu - Cargo-Planner’ın sisteminizle etkileşime girmesini 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 gerçekleştirirsiniz:

- Web uygulamasında Geliştirici portalına gidin
- Web kancaları bölümünü genişletin
- Web kancası oluştur’a basın
- Verilerin gönderileceği URL’yi girin ve abone olmak istediğiniz olayı seçin
- Kaydet’e 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 "Yük işlendi", 200
else:
abort(403, 'İmza doğrulaması başarısız oldu')
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.