gpt4 book ai didi

azure - 从 Azure Apim 中的上下文读取命名值

转载 作者:行者123 更新时间:2023-12-02 06:30:45 26 4
gpt4 key购买 nike

我正在定义入站策略并尝试从 2 个组件构建 URL。我知道如何获取这些值 1 but 1,但是当我必须将它们组合成一个时,我无法弄清楚语法。

首先,我调用 api 并保存响应

<send-request mode="copy" response-variable-name="createdUser" timeout="20" ignore-error="false">
<set-url>{{Systems.One.Endpoint}}/services/rest</set-url>
</send-request>

我可以追踪我的回复,这样就可以了

<trace source="Contact Id">@(((IResponse)context.Variables["createdUser"]).Body.As<JObject>()["contactId"])</trace>

但我不知道如何从 {{System.One.Endpoint}} 和 @(((IResponse)context.Variables["createdUser"]).Body.As()["contactId"创建网址])

这在这里不起作用

<send-request mode="copy" response-variable-name="createPeriod" timeout="seconds" ignore-error="true">
<set-url>
{{System.Two.Endpoint}}/api/@(((IResponse)context.Variables["createPeriod"]).Body.As<JObject>()["contactId"])/createperiod/{{DefaultPeriodlength}}
</set-url>

@ 之后的所有内容都只是设置为字符串,而不是从变量的实际值加载

如何组合这两个值?

最佳答案

策略表达式只能用于生成元素/属性的完整值。合约中的命名值可用于表示任何属性/元素值的任何部分,并在分析/执行策略之前插入到策略中。所以像这样:

<set-url>@("{{System.Two.Endpoint}}/api/" + ((IResponse)context.Variables["createPeriod"]).Body.As<JObject>()["contactId"].ToString() + "/createperiod/{{DefaultPeriodlength}}")</set-url>

或者如果您更喜欢字符串插值:

<set-url>@($"{{System.Two.Endpoint}}/api/{((IResponse)context.Variables["createPeriod"]).Body.As<JObject>()["contactId"]}/createperiod/{{DefaultPeriodlength}}")</set-url>

关于azure - 从 Azure Apim 中的上下文读取命名值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51930906/

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