【问题标题】:How to add a sort/order parameter to an API url query string?如何将排序/顺序参数添加到 API url 查询字符串?
【发布时间】:2020-02-04 20:00:52
【问题描述】:

我正在使用在 Postman 中返回以下数据的示例 API URL (reqres.in/api/users?page=2):

{
"page": 2,
"per_page": 6,
"total": 12,
"total_pages": 2,
"data": [
    {
        "id": 7,
        "email": "michael.lawson@reqres.in",
        "first_name": "Michael",
        "last_name": "Lawson",
        "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/follettkyle/128.jpg"
    },
    {
        "id": 8,
        "email": "lindsay.ferguson@reqres.in",
        "first_name": "Lindsay",
        "last_name": "Ferguson",
        "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/araa3185/128.jpg"
    },
    {
        "id": 9,
        "email": "tobias.funke@reqres.in",
        "first_name": "Tobias",
        "last_name": "Funke",
        "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/vivekprvr/128.jpg"
    },
    {
        "id": 10,
        "email": "byron.fields@reqres.in",
        "first_name": "Byron",
        "last_name": "Fields",
        "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/russoedu/128.jpg"
    },
    {
        "id": 11,
        "email": "george.edwards@reqres.in",
        "first_name": "George",
        "last_name": "Edwards",
        "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/mrmoiree/128.jpg"
    },
    {
        "id": 12,
        "email": "rachel.howell@reqres.in",
        "first_name": "Rachel",
        "last_name": "Howell",
        "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/hebertialmeida/128.jpg"
    }
]}

我想添加一个查询字符串参数,该参数允许我按 first_namekey/value 对对数据进行排序,这样 Byron Fields 将成为第一个结果,Tobias Funke 将成为最后一个结果。

我尝试过使用查询参数,例如 &sort=+first_name&sort=sort=first_name.asc&sortBy=+first_name,但这些查询字符串似乎都没有效果。

是否有 API 查询参数允许我按 first_name 键/值对对数据进行排序?

任何帮助将不胜感激。

【问题讨论】:

    标签: json sorting filtering postman query-string


    【解决方案1】:

    这是一个似乎没有 URL 过滤选项的公共 API,但找不到文档。 API 不会自动具有这些类型的功能,您需要先实现它们。 :)

    可以在 Postman 中通过使用 Lodash sortBy 函数来实现这一点,但它在收到响应之后完成了这一切:

    如果将其添加到Tests 选项卡,您将在控制台中看到输出:

    console.log(_.sortBy(pm.response.json().data, 'first_name'));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      • 2011-02-11
      • 2021-01-05
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多