我需要能够从ODataQueryOptions转换为RestRequest,以便能够发出与指定的过滤器RestRequest,并创建了以下辅助类:如何映射来自ODataQueryOptions过滤器选项RestRequest
public static class ODataQueryFilterToRestClient
{
public static RestRequest Map(ODataQueryOptions odataQuery)
{
var restRequest = new RestRequest();
if (odataQuery.Filter != null)
{
restRequest.AddQueryParameter(@"$filter", odataQuery.Filter.RawValue);
}
if (odataQuery.Top != null)
{
restRequest.AddQueryParameter(@"$top", odataQuery.Top.RawValue);
}
if (odataQuery.Skip != null)
{
restRequest.AddQueryParameter(@"$skip", odataQuery.Skip.RawValue);
}
if (odataQuery.OrderBy != null)
{
restRequest.AddQueryParameter(@"$orderby", odataQuery.OrderBy.RawValue);
}
//etc
return restRequest;
}
}
鉴于OdataQueryOptions支持以下功能:
有没有更简单,使ODataQueryOptions之间的转换方式RestClient,或其他休息客户端代理?
在附注中,我不知道是否有更好的方式通过控制器接受参数比ODataQueryOptions更好?
据我所知,你想在另一台服务器上调用另一个API。如果是这种情况,你应该检查该API的文档。如果它不是OData我怀疑它会接受$ filter,$ select。 – ErvinS
你现在的方法到底是什么问题?这只是一个方法调用。你怎么想像更简单的东西? –