【发布时间】:2019-01-13 16:48:17
【问题描述】:
我正在尝试显示来自 Azure API Management 的 REST API 的订阅。根据documentation,我应该能够在查询字符串中指定$filter 参数,但是我不清楚过滤字符串应该采用什么格式,至少可以说示例很薄。
这是我的代码:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseUrl);
client.DefaultRequestHeaders.Add("Authorization", _azureApiManagementFunctions.CreateSharedAccessToken());
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/json"));
string filter = "ownerId eq " + "/users/" + user.Id; //this is likely where the issue is
response = await client.GetAsync("/subscriptions" + "?api-version=" + apiVersion + "&$filter=" + filter);
var contents = await response.Content.ReadAsStringAsync();
var contentsJson = JsonConvert.DeserializeObject<ApimSubscription>(contents);
};
我得到一个错误:
"{\"error\":{\"code\":\"ValidationError\",\"message\":\"Invalid filter clause specified: 'ownerId eq /users/[removed]'.\",\"details\":null}}"
我也尝试将过滤器设置为"ownerId eq " + user.userId。
所以我的问题是,有没有人使用过这样的过滤器参数,您对我如何获取单个用户的订阅有什么建议吗?
【问题讨论】:
-
不确定是否是您的问题中的拼写错误,但您在 API 资源字符串中写了
fitler而不是filter... -
谢谢@oerkelens。更新。现在出现过滤器错误。
-
基于示例here 我想知道
/users/在您的过滤器中做了什么。如果只使用$"ownerId eq {user.Id}"或$"ownerId eq '{user.Id}'"会发生什么? -
谢谢。同样产生的错误。
-
我想使用这个 API 获取带有响应对象的用户的密码,你能帮我做同样的事情吗?
标签: c# azure azure-api-management