def api_generic(request, request_processor, app, resource):
req = {}
req['method'] = request.method
req['resource'] = resource
req['json'] = request.json
req['params'] = {}
params = {}
for k, v in request.args.iteritems():
try:
in_json = json.loads(v)
if type(in_json) is dict:
params[k] = in_json
else:
params[k] = str(in_json)
except:
params[k] = v
req['params'] = params
auth_form = {}
if request.authorization:
auth_form['user'] = request.authorization.username
auth_form['password'] = request.authorization.password
else:
if 'X-User' in request.headers:
auth_form['user'] = request.headers['X-User']
if 'X-Token' in request.headers:
auth_form['token'] = request.headers['X-Token']
req['auth_form'] = auth_form
response = request_processor(app, req)
if 'errors' in response:
return jsonify({'errors': response['errors']}), 400
elif request.method == 'GET':
return jsonify({resource: response['json']}), response['status']
return jsonify(response['json']), response['status']
评论列表
文章目录