如何解决Flask-Restful 中的分页 API 响应
我正在尝试构建一个 API 端点,该端点将返回分页响应,稍后将用于实现无限滚动功能。 我对回复进行分页是否正确?
到目前为止,我已经编写了以下资源类:
class Restaurants(Resource):
def get(self):
try:
page = int(request.args.get('page',1))
limit = int(request.args.get('limit',20))
except:
return abort(409,'Invalid URL arguments')
paginate = Restaurant.query.paginate(page,limit,False)
obj = {}
obj ['page'] = page
obj['limit'] = limit
next = paginate.next_num
query_string_next = ''
if next:
query_string_next = "restaurants?page=%d&limit=%d" % (next,limit)
obj['next'] = query_string_next
query_string_prev = ''
prev = paginate.prev_num
if prev:
query_string_prev = "restaurants?page=%d&limit=%d" % (prev,limit)
obj['prev'] = query_string_prev
obj['results'] = marshal(paginate.items,resource_fields)
return obj
这很好用,但我的问题是是否优化得很好?
鉴于查询将在每个页面请求上执行,并且每个用户可能对不同页面的同一端点进行多次 API 调用,是否有更好的技术先缓存所有条目,然后使用缓存结果在构建分页响应?
欢迎提出任何其他建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。