需要在上行链路中使用动态参数来扭曲返回分页结果的API

2024-10-01 13:33:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Uplink包装BitBucket API。当我尝试使用rest/api/1.0/projects获取服务器中的所有项目时,它会返回一个项目列表以及需要在参数中设置的“nextPageStart”,以获取下一组结果。我查阅文档试图找到解决此问题的方法,发现params是“一个为API调用添加静态查询参数的装饰器”,我正在尝试找到一种动态传递params的方法。你知道吗

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动态发送到下一个请求?你知道吗


Tags: 项目方法importrestapijsonbitbucket参数
1条回答
网友
1楼 · 发布于 2024-10-01 13:33:00

对动态参数使用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())

相关问题 更多 >