'@{...}' Expression Blocks in Azure API Policy


How to use the "@{...}" expression block in Azure API Policy?

✍: FYIcenter.com


The "@{...}" expression block in Azure API Policy can be used to include a C# statement block as the attribute value or text value in most policy statements.

C# statement block in the "@{...}" expression block must end with a "return" statement.

When a "@{...}" expression block is included in a policy statement, the C# statement block will be executed first and the returned value of the "return" statement will be used in the policy statement.

For example, the following "set-body" outbound policy statement uses a "@{...}" expression block to remove a number of properties from response body:

    var response = context.Response.Body.As<JObject>();  
    foreach (var key in new [] {"minutely", "hourly", "daily"}) {  
    return response.ToString();  

Note that the C# statements inside "@{...}" must be XML friendly. For example, the "<" character should be replaced with &lt;:

<trace source="MyDebug">@{context.Response.Body.As<JObject>().ToString()}</trace>

Also note that the "@{...}" expression block can not be mixed with text as attribute values or text contents. The following examples are wrong uses of "@(...)" expressions:

<set-variable name="message" value="Hello @{return "world!";}" />  
<trace source="MyDebug">Hello @{return "world!";}</trace>
<trace source="MyDebug">@{return "Hello";} world!</trace>

For more information on "@{...}" expression blocks, see API Management policy expressions Website.


Using Azure API Policy

⇒⇒Microsoft Azure API Management Tutorials

2017-09-23, 118👍, 0💬