PiotrFerenc / Allegro-api-rest-client

Allegro Rest API Client c# .net
3 stars 3 forks source link

Rekomendacja wymiany RestSharp na inną bibliotekę #8

Open hahyes opened 3 years ago

hahyes commented 3 years ago

Dobry,

jako, że mam pewne doświadczenie z RestSharp, chcę podzielić się swoimi doświadczeniami o tej bibliotece, która we współczesnych standardach jest... lekko mówiąc, fatalna do produkcyjnego użytku.

RestSharp korzysta z HttpWebRequest, co od lat nie ulega zmianie. Jednakże Microsoft nie rozwija tej biblioteki od lat. Działa ona na takiej zasadzie, że dla każdego zapytania tworzy nowe połączenie. Połączenia te po wykorzystaniu wiszą w tablicy ARP do czasu timeoutu: TIME_WAIT. Natomiast HttpClient to już inna sprawa, jest rozwijany dalej w nowym .NET, korzysta z puli połączeń (zbiór połączeń, które są używane wielokrotnie) zamiast tworzenia całej ich masy, która oczekuje na zamknięcie.

Dlatego z całego serca polecam zmianę z RestSharp, ponieważ netstat pokazuje dantejskie sceny po używaniu go. Osobiście korzystam z Flurl.Http, ale sam HttpClient też jest bardzo spoko (interfejs tej biblioteki został dosyć ucywilizowany). Istnieje też inspirowany Retrofitem - Refit, który pozwala budować interfejsy do API. Niestety RestSharp nie jest przyszłościowym kierunkiem, sam deweloper nie chce go szczególnie rozwijać, co tłumaczy małym zainteresowaniem dotacjami.

Poza tym wszystkim, niezmiernie cieszę się, że ktoś podejmuje taki projekt w C#. Rzuciłbym jakimś PR, ale jestem amatorem i w życiu nie napisałbym tak ładnie ułożonego projektu. Wolę dzielić się doświadczeniami. ;)

Pozdrawiam serdecznie.

PiotrFerenc commented 3 years ago

Elo. Dzięki za zwrócenie uwagi. Nie ukrywam, że sam szukam fajnej alternatywy do RestSharpa. Przejrzę biblioteki polecane przez Ciebie.

hahyes commented 2 years ago

Mała aktualizacja w temacie. W wersji 107.x.x i wyżej RestSharp używa już HttpClient (a deweloper pisał, że nie będzie tego robił...) Jednak poczyniono pewne duże zmiany, z którymi warto się zapoznać: https://github.com/restsharp/RestSharp/releases/tag/107.0.0

Więc z mojej strony nie mam już zastrzeżeń do tej biblioteki. :D