Ich muss in der Lage Karte sein ODataQueryOptions-RestRequest um eine RestRequest mit dem angegebenen Filter zur Ausgabe in der Lage sein zu konvertieren, und haben die folgende Hilfsklasse erstellt:Wie Filteroptionen von ODataQueryOptions zu 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;
}
}
da OdataQueryOptions unterstützt die folgenden:
gibt es einen einfacheren Weg, um die Konvertierung zwischen ODataQueryOptions zu machen zu RestClient oder einem anderen Rest-Client-Proxy?
Nebenbei bemerkt, ich weiß nicht , wenn es eine bessere Möglichkeit gibt, Parameter über einen Controller als ODataQueryOptions zu akzeptieren?
Wie ich verstehe, möchten Sie eine andere API auf einem anderen Server aufrufen. Wenn dies der Fall ist, sollten Sie die Dokumentation dieser API überprüfen. Wenn es nicht OData ist, bezweifle ich, dass $ filter, $ select akzeptiert wird. – ErvinS
Was genau ist das Problem mit Ihrem aktuellen Ansatz? Es ist nur ein Methodenaufruf.Wie stellen Sie sich etwas einfacher vor? –