# Synchronous - process and return immediately
@app.route('/preprocess/sync', methods=['POST'])
def preprocess_sync():
payload = request.get_json()
data = payload.get('data')
# Modify data here if needed
return jsonify({
'pipelineToken': payload.get('pipelineToken'),
'pipelineName': payload.get('pipelineName'),
'data': data
})
# Asynchronous - return immediately, send callback later
@app.route('/preprocess/async', methods=['POST'])
def preprocess_async():
payload = request.get_json()
threading.Thread(
target=send_callback,
args=(payload.get('pipelineToken'),
payload.get('pipelineName'),
payload.get('data'))
).start()
return jsonify({'status': 'accepted'}), 200
def send_callback(pipeline_token, pipeline_name, data):
callback_url = 'http://localhost:8080/api/v1/restendpoint/callback'
requests.post(callback_url, json={
'pipelineToken': pipeline_token,
'pipelineName': pipeline_name,
'data': data
})