我正在尝试使用Uplink来包装BitBucket API。当我尝试使用rest/api/1.0/projects
获取服务器中的所有项目时,它将返回项目列表以及需要在参数中设置的“ nextPageStart”以获取下一组结果。我去了文档以尝试找到解决此问题的方法,发现params是“为API调用添加静态查询参数的装饰器”。我正在尝试找到一种动态传递参数的方法。
from uplink import Consumer, get, params
import json
class BitBucket(Consumer):
"""A Python client for the BitBucket API"""
@params({"start": 0})
@get("rest/api/1.0/projects")
def get_projects(self):
"""Get the public projects"""
if __name__ == "__main__":
bit_bucket = ButBucket(base_url="<my base url>")
projects = bit_bucket.get_projects()
print(projects.json())
通过提供正确的基本URL,可以使用上面的代码获得结果的第一页。现在,我需要修改@params({"start": 0})
或以另一种方式设置请求参数。如何将从响应中得到的nextPageStart
动态发送到下一个请求?
答案 0 :(得分:0)
将uplink.Query
用于动态参数
from uplink import Consumer, get, params, Query
import json
class BitBucket(Consumer):
"""A Python client for the BitBucket API"""
@get("rest/api/1.0/projects")
def get_projects(self, start: Query('start')):
"""Get the public projects"""
if __name__ == "__main__":
bit_bucket = ButBucket(base_url="<my base url>")
projects = bit_bucket.get_projects()
print(projects.json())