quickstarts/pub_sub/python/sdk/order-processor/app.py

32 lines
873 B
Python

from flask import Flask, request, jsonify
from cloudevents.http import from_http
import json
import os
app = Flask(__name__)
app_port = os.getenv('APP_PORT', '6002')
# Register Dapr pub/sub subscriptions
@app.route('/dapr/subscribe', methods=['GET'])
def subscribe():
subscriptions = [{
'pubsubname': 'orderpubsub',
'topic': 'orders',
'route': 'orders'
}]
print('Dapr pub/sub is subscribed to: ' + json.dumps(subscriptions))
return jsonify(subscriptions)
# Dapr subscription in /dapr/subscribe sets up this route
@app.route('/orders', methods=['POST'])
def orders_subscriber():
event = from_http(request.headers, request.get_data())
print('Subscriber received : %s' % event.data['orderId'], flush=True)
return json.dumps({'success': True}), 200, {
'ContentType': 'application/json'}
app.run(port=app_port)