import json import hashlib from flask import Blueprint, request, url_for from flask_restful import Api, Resource, abort from flask_restful import reqparse, fields, marshal_with from flask_jwt import jwt_required from {{cookiecutter.project_name}}.v1.models.user import User from {{cookiecutter.project_name}} import db user_bp = Blueprint('user_bp', __name__) user_api = Api(user_bp) user_bp.API_VERSION = '1.0' @user_bp.after_request def additional_info(response): response.headers['API-Version'] = '1.0' if request.method in ['GET', 'HEAD']: response.headers['ETag'] = hashlib.sha1(json.dumps(response.data)).hexdigest() return response # By default parse returns the first error caught. # Setting bundle_errors property to true to get all the errors. user_parser = reqparse.RequestParser(bundle_errors=True) user_parser.add_argument('first_name', type=str, required=True, help="User's First Name") user_parser.add_argument('last_name', type=str, required=True, help="User's Last Name") user_parser.add_argument('username', type=str, required=True, help="Choose a username. It needs to be unique.") user_parser.add_argument('password', type=str, required=True, help="Choose a password")
''' Blueprint location ''' from flask import Blueprint api_bp = Blueprint('api_bp', __name__) api_bp.API_VERSION = '1.0' # TODO: figure out API versioning based on blueprints # this needs to be done after implementing Flask-RESTful @api_bp.after_request def additional_info(response): response.headers['API-Version'] = '1.0' return response