Я делаю API Restful с использованием OData, и по некоторым причинам я хочу принудительно использовать расширенную фильтрацию в промежуточном программном обеспечении.
Так что, если клиенты отправляют
http://localhost:52973/odata/customers
Промежуточное программное обеспечение должно автоматически изменить его на
http://localhost:52973/odata/customers?$expand=Contact,Address
Чтобы сделать это, я сделал простое утверждение if внутри своего промежуточного программного обеспечения
if (ctx.Request.Path.Value.Contains("customers") && !ctx.Request.QueryString.Value.Contains("?$expand"))
{
string uri = @"?$expand=";
ctx.Request.QueryString = ctx.Request.QueryString.Add(uri, "Contact,Address");
}
К сожалению, он продолжает генерировать следующее: {?%3F%5C$expand%5C%3D=Contact,Address}
Я пытался добавить обратную косую черту внутри строки uri, но это не помогло.