Api 使用适当的消息分析Restful请求

Api 使用适当的消息分析Restful请求,api,rest,flask,flask-restful,Api,Rest,Flask,Flask Restful,我使用Flask Restful的reqparse接口来解析请求参数。我有日期字段,它是必需的,并且我必须对其执行验证 parser = reqparse.RequestParser(bundle_errors=True) parser.add_argument('date',type=date_type,required=True,help='date cannot be blank') args = parser.parse_args() 我已经定义了自定义日期类型,用于验证可以使用pyt

我使用Flask Restful的reqparse接口来解析请求参数。我有日期字段,它是必需的,并且我必须对其执行验证

parser = reqparse.RequestParser(bundle_errors=True)
parser.add_argument('date',type=date_type,required=True,help='date cannot be blank')
args = parser.parse_args()
我已经定义了自定义日期类型,用于验证可以使用python dateutil包将字符串解析为date

def date_type(date_str):
  try:
      return parser.parse(date_str)
  except:
      raise ValueError('Not a valid date format')
我想返回适当的消息,如果date字段丢失或date不是有效的日期,但使用add_参数,我只允许有一条帮助消息。 add_参数是否允许在缺少和无效数据类型事件的情况下有不同的消息。

Hie

我想你应该试试

它将处理无效或丢失的数据


而且文档中还声明,ReqParse将在即将发布的版本中删除。

因此,正如flask restful文档所建议的,我必须使用webargs解析我的请求,在幕后它使用棉花糖。 下面是一个示例,它将帮助任何希望使用它的人

from webargs import fields
from webargs.flaskparser import use_args

user_args={
    'user_id':fields.Int(required=True),
    'date':fields.DateTime(required=True)),
    'start_date':fields.DateTime(required=False)
    }


class User(Resource):
    #method_decorators = [requires_auth]
    @use_args(user_args)
    def get(self,args):
    return {"hello":"world"}

我知道,在reqparse中也可以这样做吗。另外,flask棉花糖文档不包含任何请求解析示例。您应该在flask棉花糖文档中查看该示例。