from flask import Flask, request, Response
from pystof import Doc
app = Flask(__name__)
doc = Doc()
request_root = None
response_root = None
base_path = 'src/py/examples/server/base.stof'
base_file = open(base_path, 'r')
BASE = base_file.read()
base_file.close()
api_path = 'src/py/examples/server/api.stof'
api_file = open(api_path, 'r')
API = api_file.read()
api_file.close()
def init_doc():
global request_root, response_root, BASE, API
doc.parse(BASE)
doc.parse(API)
request_root = doc.get('Request', None)
response_root = doc.get('Response', None)
@app.post('/')
def stof_entry():
global doc, request_root, response_root
doc.binary_import(request.get_data(), 'bstf', request_root)
doc.run('server')
res_json = doc.string_export('json', response_root)
doc.run('cleanup') request_root = doc.get('Request', None)
response_root = doc.get('Response', None)
return Response(res_json, mimetype='application/json')
if __name__ == '__main__':
init_doc()
app.run(debug=True)