CherryPy REST开发:如何为GET接口设置可选URL参数及默认值
你直接在接口方法的形参里给目标参数设置默认值即可,CherryPy会自动将GET请求的URL查询参数映射到方法入参,未传入对应参数时会自动使用默认值。
完整示例代码
import cherrypy class RestApi(object): # 假设你要接收的可选整数参数名为page_size,默认值10 @cherrypy.expose @cherrypy.tools.allow(methods=['GET']) # 限制仅允许GET请求访问 @cherrypy.tools.json_out() # 若需要返回JSON格式可添加该装饰器 def get_data(self, page_size=10): # 手动转换为整数,同时校验参数合法性 try: page_size = int(page_size) except (ValueError, TypeError): # 传入非合法数字时返回400错误,也可根据需求直接使用默认值 raise cherrypy.HTTPError(400, "page_size must be a valid integer") # 此处替换为你的业务逻辑 return {"code": 200, "data": {"page_size": page_size}} if __name__ == '__main__': cherrypy.quickstart(RestApi())
效果验证
- 访问
http://127.0.0.1:8080/get_data未传page_size参数时,返回的page_size值为默认的10 - 访问
http://127.0.0.1:8080/get_data?page_size=20传入参数时,返回的page_size值为20 - 传入非法值
http://127.0.0.1:8080/get_data?page_size=abc时会返回400错误提示
注意点
所有URL传递的参数默认都是字符串类型,必须手动做类型转换和合法性校验,避免后续业务逻辑出现类型错误。
内容的提问来源于stack exchange,提问作者costola
相关产品推荐
相关产品推荐

