def headerize(func):
"""The decorator adds header links to response for paginator"""
@wraps(func)
def wrapper(*args, **kwargs):
data = func(*args, **kwargs)
resp = jsonify(data)
fmt = '<{base}?page={page}&per_page={per_page}>; rel="{rel}"'
links = [{'page': data['page'] - 1, 'rel':'prev'},
{'page': data['page'] + 1, 'rel':'next'},
{'page': 1, 'rel': 'first'},
{'page': data['num_pages'], 'rel':'last'}]
header = ', '.join(fmt.format(base=request.base_url,
page=i['page'],
per_page=data['per_page'],
rel=i['rel'])
for i in links)
resp.headers.extend({'Link': header})
return resp
return wrapper
评论列表
文章目录