如何更新graphql查询字符串正文中的过滤器?

时间:2020-09-21 16:42:34

标签: python dictionary parsing graphql filtering

我有一个rest API,它是graphql API的代理。在将查询发送到实际的graphql API之前,我需要更新过滤器对象。

test_query = { "query": "{ \
    viewer { \
        socks(filter: {sockId:'12345'}) { \
            colorGroups( \
                limit: 10000, \
                filter: { \
                    datetime_gt: '2019-02-13T00:00:00Z', \
                    datetime_lt: '2019-02-20T00:00:00Z'}, \
                orderBy: [datetime_ASC]) { \
                    size, \
                    brand \
                } \
        } \
    } \
}"}

在这种情况下,我需要像这样更新“ socks”节点上的过滤器:

socks(filter: {sockId:'12345'}) 需要是 socks(filter: {sockId:'actual sock id'})

对此有何建议?我知道我可以使用一些graphql库。以前,我试图强迫用户发送{sockId: $sockId},只是将正确的值添加到变量对象中。我还尝试过使用正则表达式将用户发送的值分配给sockId,但这已被证明是一种限制。

1 个答案:

答案 0 :(得分:0)

这是您所拥有的JSON(可以使用JSON.parse),但是我将创建一个查询对象,对其进行修改,然后使用JSON.stringify(object)。

如果您想坚持使用字符串,请使用字符串插值和变量:str =`here'$ {war}'我确实具有变量war的值。