Tools, FAQ, Tutorials:
'@{...}' 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:
<set-body>@{ var response = context.Response.Body.As<JObject>(); foreach (var key in new [] {"minutely", "hourly", "daily"}) { response.Property(key).Remove(); } return response.ToString(); } </set-body>
Note that the C# statements inside "@{...}" must be XML friendly. For example, the "<" character should be replaced with <:
<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 the 'context' Object in Policy Expressions
2018-02-14, 2374🔥, 0💬
Popular Posts:
How to attach console to a Running Container using the "docker container exec" command? I want to ge...
How to use the "rewrite-uri" Policy Statement for an Azure API service operation? The "rewrite-uri" ...
Where to get a JSON.stringify() Example Code in JavaScript? Here is a good JSON.stringify() example ...
Where to find tutorials on Python programming language? I want to learn Python. Here is a large coll...
What is the "__init__()" class method? The "__init__()" class method is a special method that will b...