2014-11-18 6 views
7

Ich habe seit einiger Zeit nach dieser Antwort gesucht, hatte aber keinen Erfolg.Wenn Sie RESTful-APIs verwenden, wann empfehlen Sie RestSharp und wann HttpClient?

Ich habe immer RestSharp verwendet und ich finde es ziemlich ordentlich, aber dann erkannte, dass es den HttpClient von Microsoft zur Verfügung gestellt und es sieht aus, um die gleiche Funktionalität auf den ersten Blick zu decken.

(Ich habe auch schon von ServiceStack gehört und die meisten Leute scheinen es den anderen Alternativen vorzuziehen, aber so viel zu bezahlen ist keine Option - noch die ältere Version zu verwenden).

Ist es nur eine Frage der persönlichen Vorlieben, oder gibt es wirklich irgendwelche Vor-und Nachteile der Verwendung der einen oder anderen - oder vielleicht gibt es bestimmte Szenarien, in denen einer von ihnen besser als der andere passt?

Vielen Dank im Voraus!

Antwort

8

Es hängt weitgehend von persönlichen Vorlieben ab, wie Sie vermutet haben. Ein paar Punkte:

  • RestSharp herauskam Jahre vor und Httpclient weit überlegen war in der Funktionalität und Benutzerfreundlichkeit als alles, was Microsoft setzen zu der Zeit heraus.

  • HttpClient hat eine streng asynchrone (wie in async/erwarten) API; RestSharp unterstützt sowohl synchrone als auch asynchrone Aufrufe. Aber solange Sie nicht auf einer älteren Plattform stecken und/oder Legacy-Code unterstützen, gibt es wenig Grund, HTTP-Aufrufe synchron zu machen. (Binden Sie nicht auf Threads warten auf potenziell lang laufende I/O!)

  • RestSharp deckt ein großes Gebiet, das Httpclient nicht von selbst, vor allem Deserialisierung von Antworten.

I RestSharp für mehrere Jahre vor dem Httpclient Schalt (Ich wollte async/await Unterstützung, und meines Wissens RestSharp es nicht an der Zeit unterstützt haben, obwohl es jetzt der Fall ist), und schließlich schrieb ich und Ich habe meine eigene kleine Bibliothek, Flurl.Http, veröffentlicht, die meinen URL-Builder mit einigen fließenden HTTP/Deserialisierungsmethoden erweitert, die wenig mehr als dünne Wrapper um HttpClient und Json.NET sind.