2016-04-26 18 views
1

Also habe ich eine C# -RESTful-API für ein neues Nebenprojekt implementiert und mir ist aufgefallen, dass ich bei einer GET-Anfrage an die API viele Daten bekomme, wenn ich nur ungefähr 8 brauche oder so Einträge, insbesondere die neuesten Einträge.JSON-Daten von Restful API analysieren C#

Ich habe dies auch zu einem von zwei verschiedenen Problemen eingegrenzt, ich glaube, dass meine unten fallen Code etwas primitiv nach einer generischen Klassenstruktur, die beim Deseralisieren Objekt aufgerufen wird aufgerufen wird. Das Hauptproblem könnte darin bestehen, dass ich einen Web-Client verwende, um die JSON-Daten herunterzuladen und sie dann weiterzuleiten. Könnte dies ausgeklügelter sein, um die gewünschte Funktionalität zu ermöglichen?

using (WebClient wc = new WebClient()) 
{ 
    var json = wc.DownloadString("//api call here"); 
    jsonData = JsonConvert.DeserializeObject<List<T>>(json); 
} 

Ich benutze natürlich NewtonSoft Json Bibliothek hier.

Oder könnte es zweitens sein, dass ich Änderungen am Controller vornehmen muss, damit ich nur die 8 neuesten Einträge anfordern kann? Ich weiß nur wenig darüber, APIs zu ändern, anstatt die VS-Magie zuzulassen.

Ich suche hier meist Rat, weil ich mich um nichts kümmern kann, aber ich denke nur, dass meine Vorgehensweise falsch ist und wenn die Daten größer werden, sollte ich mein bestehendes Wissen verbessern.

+0

Wenn api Paging- oder Grenzwertdaten nicht unterstützt, erhalten Sie immer die vollständigen Daten. – halit

+1

Versuchen Sie, Ihre API mit OData zu implementieren, damit Sie die Daten abfragen können, während Sie sie abrufen. – Ramin

+0

Danke für deinen Kommentar Ramin Ich habe OData gelesen und es sieht ziemlich vielversprechend aus, obwohl ich im Idealfall die Möglichkeit suchen würde, eine Lösung zu finden, ohne sie zu verschieben. –

Antwort

0

Um Klarheit darüber zu schaffen, wie dieses Problem gelöst wurde, wurde es meist durch das Erstellen bestimmter Trigger auf der vorhandenen API, die SQL ausgeführt werden konnte, was ich vorher nicht wusste, getan.

Dies erlaubte mir, die Menge der Daten zu begrenzen, die durch einen generischen SQL-Befehl zurückgegeben wurde. In der API wurde ein separater Aufruf erstellt, der alle Daten zurückgab und die späteren Objekte mithilfe einer Async-Funktion in dom lud.

Ja, Sie können SQL mit APIs verwenden, die von C# Magic generiert werden.