是否可以根据其他呼叫的响应,使url动态值成为选择列表?

时间:2019-08-02 15:55:55

标签: paw-app

假设我有一个返回对象列表的请求。 JSON具有ID数组。假设我在url中提供了一个对象ID,则另一个API端点允许我获取对象的详细信息。有什么方法可以使用列表响应的动态值,以便可以从下拉列表中选择详细信息请求中的其中一个ID?

例如:

GET /api/customers

[
    {
        "id": "abc",
        ...
    },
    {
        "id": "foo",
        ...
    }
]
GET /api/customers/{Dynamic Response Value}

{Dynamic Response Value
    - "abc"
    - "foo"
}

1 个答案:

答案 0 :(得分:0)

据我所知(在Paw内)这是不可能的。所以有点希望有人证明我现在错了,或者为此写了扩展名。

但是我现在做的是以下事情。

1)通过请求上方的Manage按钮打开环境管理,或使用菜单栏Windows-> Environments

enter image description here

2)创建一个新的网上论坛,并将其命名为id_from

3)为您喜欢该功能的每个列表请求添加变量

4)添加带有动态值的列first_get:Response Parse Body
作为关键路径,它可能类似于:data.0.id

enter image description here

5)添加列last_get,这比较棘手,为此,我使用了2个动态值的组合:RegExp Match + Response Parse Body。

响应解析正文无法给出最后一个对象。所以我让它返回每个id。
密钥路径:data.*.id

然后使用RegEx仅过滤掉最后一个。
"?([0-9A-Za-z\-]+)"?]$

enter image description here

6)现在,您可以选择要使用的id_,并执行所需的请求

enter image description here

这对我来说就足够了,因为我主要使用过滤器和排序来检索列表,并且大多数情况下,第一个条目对我来说就足够了。

使用上面提到的2,您还应该可以添加第二,第三,第四等清单。

警告,如果列表中不包含您要的项目,则该环境变量将返回空。取决于API,这可能是有害的,例如/ object /上的DELETE与DELETE / object /上的删除。