'context.Request.Url.Query' Query String Parameters

Q

How to access Query String parameters from "context.Request.Url.Query" object in Azure API Policy?

✍: FYIcenter.com

A

Query String parameters are parameters provided in the query string in the form of name=value&name=value... format. For example, the following URL has two query string parameters: "date" and "status"

/customers/101/orders/999/?date=today&status=open

Azure API will store query string parameters and values in the "context.Request.Url.Query" object and "context.Request.OriginalUrl.Query" object for you to access. This "context.Request.Url.Query" is of the type, "IReadOnlyDictionary". But the query string parameter value is of the type, string[], because a single query string parameter can hold multiple values.

There are several ways to access query string parameters and values:

1. Access it using the array syntax - If you know the parameter name, you access its value using the array syntax. For example:

    context.Request.Url.Query["parameter_name"][index]
    context.Request.Url.Query["date"][0]
    context.Request.Url.Query["status"][0]

2. Loop through the enumerator with correct type casted - If you don't know the parameter name, you loop through the key value pairs, with each item properly type casted. For example:

    IReadOnlyDictionary<string, string[]> dict context.Request.MatchedParameters
    foreach (KeyValuePair<string, string[]> item in dict) {
   	    MatchedParameters['"+item.Key+"']: "+item.Value[0]+...;
    }

3. Loop through the enumerator with no type casting - If you don't know the parameter name, you loop through the key value pairs with no type casting. This format works better in Azure API management. For example:

    var dict context.Request.MatchedParameters
    foreach (var item in dict) {
   	    MatchedParameters['"+item.Key+"']: "+item.Value[0]+...;
    }

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, 116👍, 0💬