使用 api.expect() Flask-RESTPlus 装饰 GET 方法

Decorating GET method with api.expect() Flask-RESTPlus

我有一个用 api.expect() 装饰的端点,但我收到此错误。

{
    "message": "Input payload validation failed",
    "errors": {
        "": "None is not of type u'object'"
    }
}

为了简单起见,这就是我的代码的样子。

@api.route('/history')
class ProfitAnalyticsResource(Resource):

    method_decorators = [jwt_required]

    @api.expect(api.model('HistoryParameters', {
        'jobId': fields.Integer(required=True, description='Job ID')
    }), validate=True)
    def get(self):
        """ Gets the profit analytics report for the current user"""

        return "test only"

我正在 Postman 上进行测试,将 jobId 作为 url 参数传入。

我没有使用 api.model(),而是使用了 api.parser()

例如

@api.route("/list")
@api.doc(parser=parser)
class RoleListResource(Resource):
    method_decorators = [jwt_required]

    query_parser = api.parser()
    query_parser.add_argument('page', required=False, type=int, default=1)
    query_parser.add_argument('page_size', required=False, type=int, default=10)

    @api.expect(query_parser, validate=True)
    def get(self, query_parser=query_parser):
        args = query_parser.parse_args()
        page = args['page']
        page_size = args['page_size']