2017-02-15 62 views
1

在API管理中,如何通过策略访问URL模板参数?使用策略模板中的URL模板参数值

在这种情况下,我的操作称为test,在HTML动词是GET和URL模板如下 -

/测试/ {variable_name1}/{variable_name2}

我的印象是,访问参数的值与{variable_name1}一样简单。但是,下面的示例没有按预期设置变量“rowkey”。相反,它的值为{variable_name1}-{variable_name2}

我在这里做错了什么?

<policies> 
    <inbound> 
     <set-variable name="rowkey" value="{variable_name1}-{variable_name2}" /> 
    </inbound> 
    <backend> 
     <base /> 
    </backend> 
    <outbound> 
     <set-header name="Row-Key" exists-action="override"> 
      <value>@((string)context.Variables["rowkey"])</value> 
     </set-header> 
    </outbound> 
</policies> 

回答

2

你不得不使用表达式来达到你想要的东西,如:

<set-variable name="rowkey" value="@(context.Request.MatchedParameters["variable_name1"] + "-" + context.Request.MatchedParameters["variable_name2"])" /> 

或使用字符串插值:

<set-variable name="rowkey" value="@($"{context.Request.MatchedParameters["variable_name1"]}-{context.Request.MatchedParameters["variable_name2"]}")" /> 
+0

感谢您长久,这是完成任务。 –