Policy to Set and Get Custom Variables

Q

How to write a policy to set and get custom variables?

✍: FYIcenter.com

A

Here is a policy that sets and gets custom variables:

<!-- Set-Get-Variable-Policy.xml
     Copyright (c) FYIcenter.com
-->
<policies>
  <inbound>
    <set-variable name="version" value="1.11" />
    <set-variable name="method" value="@(context.Request.Method)" />
    <set-variable name="message" value="@("Hello world!")" />
    <set-variable name="isTrue" value="@(1 < 2)" />
    <set-variable name="name" value="@("John & Sons")" />
    <set-variable name="entity" value="@("& = &amp;")" />
  </inbound>
  <backend>
  </backend>
  <outbound>
    <return-response>
      <set-status code="200" reason="Ok" />
      <set-body>@{
         var res = "";
  res = res + "version: "+context.Variables["version"]+"\n";
  res = res + "method: "+context.Variables["method"]+"\n";
  res = res + "message: "+context.Variables["message"]+"\n";
  res = res + "isTrue: "+context.Variables["isTrue"]+"\n";
  res = res + "name: "+context.Variables["name"]+"\n";
  res = res + "entity: "+context.Variables["entity"]+"\n";
  return res;
      }</set-body>
    </return-response>
  </outbound>
  <on-error>
  </on-error>
</policies>

Note that < and & signs can be directly used in @(...) expressions, which seems be to processed before Azure validating the policy as XML document.

Also note that XML entities will be decoded before the @(...) expression gets processed. So entering in < or &lt; in a @(...) expression gives the same result.

 

2017 Version of API Management Services

Policy to Echo the Request Body Only

Azure API Policy Examples

⇑⇑ Microsoft Azure API Management Tutorials

2017-10-23, 2865🔥, 0💬