2014-11-18 16 views
7

Szukam tej odpowiedzi od jakiegoś czasu, ale nie odniosłem sukcesu.Podczas korzystania z interfejsów API RESTful, kiedy zaleca się używanie RestSharp i HttpClient?

Zawsze używałem RestSharp i uważam, że jest całkiem schludny, ale potem zdałem sobie sprawę, że jest HttpClient dostarczony przez Microsoft i na pierwszy rzut oka wygląda na tę samą funkcjonalność.

(Słyszałem również o usłudze ServiceStack i większość osób preferuje ją w porównaniu z pozostałymi opcjami, ale płacenie za nią teraz nie jest opcją - ani używanie starszej wersji).

Czy to tylko kwestia osobistych upodobań, czy naprawdę są jakieś plusy i minusy korzystania z jednego lub drugiego - a może istnieją konkretne scenariusze, w których jeden z nich może pasować lepiej niż drugi?

Z góry dziękuję!

Odpowiedz

8

To w dużej mierze sprowadza się do osobistych preferencji, jak przypuszczałeś. Kilka punktów:

  • RestSharp wyszły lat przed HttpClient i była znacznie lepsza funkcjonalność i łatwość obsługi niż cokolwiek Microsoft zgasić w tym czasie.

  • HttpClient ma ściśle asynchroniczny (jak w async/aait) API; RestSharp obsługuje połączenia synchroniczne i asynchroniczne. Ale jeśli nie utkniesz na starszej platformie i/lub nie obsługujesz starszego kodu, nie ma powodu, aby synchronizować połączenia HTTP. (Nie odsyłaj wątków oczekujących na długo działające operacje wejścia/wyjścia!)

  • RestSharp obejmuje wiele obszarów, których HttpClient sam nie posiada, w szczególności deserializację odpowiedzi.

użyłem RestSharp na kilka lat przed przejściem na HttpClient (chciałem asynchronicznej/czekają na wsparcie, a także mój RestSharp wiedza nie wspierać go w tym czasie, chociaż robi teraz), a ostatecznie pisałem i wydałem moją własną małą bibliotekę, Flurl.Http, która rozszerza mój builder URL o pewne płynne metody HTTP/deserializacji, które są niczym więcej jak cienkimi owijkami wokół HttpClient i Json.NET.

Powiązane problemy