'context.Request.Body' Request Body

Q

How to access Request body from "context.Request.Body" object in Azure API Policy?

✍: FYIcenter.com

A

Request body is the HTTP request body, which follows an empty line after request headers.

You can access Request body from "context.Request.Body" object in any policy statements.

This "context.Request.Body" object is of the type, "IMessageBody", which support one method called "As()" as described below:

var body = context.Request.Body.As<T>(preserveContent: bool = false)

Where T is string, JObject, JToken, JArray, XNode, XElement, or XDocument.

When executed, As() will parse the request body into the given data type. And the request body will be destroyed, if preserveContent=false.

For example, the following expression block will return the request body with the first character modified as a string without destroy it:

@{   
    string body = context.Request.Body.As<string>(preserveContent: true);   
    if (body[0] =='c') {   
        body[0] = 'm';   
    }   
    return body;
}

The following expression block will parse the request body into a Jason object, then return the "Document" property as a Jason string. The request body will destroyed, because the default is "preserveContent: false"

@{   
    JObject body = context.Request.Body.As<JObject>();
	return body.GetValue("Document").ToString();
}   

For more information on the built-in "context" object, see API Management policy expressions Website.

 

Using Azure API Policy

⇒⇒Microsoft Azure API Management Tutorials

2017-09-23, 132👍, 0💬