gpt4 book ai didi

azure - 如何使用 Azure API 管理集主体中的液体模板解析查询字符串?

转载 作者:行者123 更新时间:2023-12-02 06:46:39 25 4
gpt4 key购买 nike

我希望有人看到这个并知道该怎么做。我觉得我尝试了一切:(。为了提供一些背景知识,我正在尝试创建一个通用休息端点来代理 SOAP 报告服务后端并将查询字符串 keyValues 作为参数传递。

我开始使用 context.Request.OriginalUrl.Query 沿着路径,它是: IReadOnlyDictionary<string, string[]>并循环遍历键和值。这是我的首选方法,但我收到错误:

Liquid syntax error: Object '[p_customer_name, System.String[]]' is invalid because it is neither a built-in type nor implements ILiquidizable

上面生成的代码:

<v2:listOfParamNameValues>
{% for parameter in context.Request.OriginalUrl.Query %}
<v2:item><v2:name>{{parameter.Key}}</v2:name><v2:values>
{% for value in parameter.Value %}
<v2:item>{{value}}</v2:item>
{% endfor %}
</v2:values></v2:item>
{% endfor %}
</v2:listOfParamNameValues>

我放弃了这一点,开始自己解析 QueryString,这样我就可以继续前进,但使用 Split: &amp;Split: '&amp;'只是似乎忽略了 & 和 Split: '&'导致错误:

One or more fields contain incorrect values: An error occurred while parsing EntityName. Line 15, position 123.

<v2:listOfParamNameValues>{% assign parts = context.Request.OriginalUrl.QueryString | Remove-First: '?' | Split:'&amp;' -%}
{%- for part in parts -%}
{%- assign keyValues = part | Split:'=' -%}
{%- for keyValue in keyValues -%}
{{-keyValue[0]}}:{{keyValue[1]-}}
{%- endfor -%}
{%- endfor %}</v2:listOfParamNameValues>

我愿意接受任何想法,如果我可以添加任何其他可能有帮助的内容,请告诉我。

谢谢!

最佳答案

使用 & 符号在带有 Liquid 模板的 set-body 内部的 API 管理策略中进行拆分时似乎存在限制。

为了解决这个问题,我使用了额外的策略,如下所示:

<inbound>
<base />
<set-variable name="query_string_params" value="@(context.Request.OriginalUrl.QueryString.Substring(1).Replace("&","|"))" />
<set-body template="liquid">
{% assign parameters = context.Variables["query_string_params"] | Split: "|" %}
<parameters>
{% for p in parameters %}
<parameter>
{% assign parts = p | Split: "=" %}
<name>{{parts.first}}</name>
<value>{{parts.last}}</value>
</parameter>
{% endfor %}
</parameters>
</set-body>
</inbound>

希望这有帮助!

关于azure - 如何使用 Azure API 管理集主体中的液体模板解析查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49130836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com