Jos*_* G. 26 c# httpclient .net-core
我整天在互联网上搜索一个简单的比较,但还没有找到任何关于这个主题的最新信息。
我最近加入了一个团队,该团队致力于一个使用 RestSharp 进行所有 API 调用的项目。我之前已经HttpClient通过CreateClient.NET Core的方法实现了一个IHttpclientFactory。
我正在寻找关于每个调用 REST 端点的客观优点/缺点。这仅仅是偏好问题吗?HttpClientRestSharp 库和IHttpClientFactory实现之间的生命周期管理方式是否存在根本差异?
我已经注意到,或者至少在我看来,我无法在粒度级别上管理传入的响应,但是为了提出问题,让我们将其归结为我缺乏使用 RestSharp 的经验.
有些人更喜欢使用HttpClient,因为它已经内置到框架中。因此,无需为您的项目添加额外的膨胀。
RestSharp和任何图书馆一样,更容易使用,因为有人已经做了艰苦的工作并解决了一路上遇到的问题。
我两个都用过,一个不比另一个好。这仅取决于您的用例、情况和环境。
我有一个需要调用另一个 REST API的WebAPI代理项目。一开始选择RestSharp是因为在另一个项目中使用它已经很熟悉了。但是,我最终改为使用 HttpClient ,因为它使用与 WebAPI 控制器相同的返回类型,因此它节省了我必须将 RestSharp 的响应转换回HttpResponseMessage 的时间。
当然,每种方法都有其优点和缺点,归结为您的用例。
小智 6
我将 RestSharp 用于 WindowsForm 应用程序,因为它很容易实现。
现在我正在使用 Blazor,最新的更新让我不再使用简单的 WebApi 调用,如下所示:
data = await Http.PostJsonAsync<LocationEntity>("api/GetLocation", data);
Run Code Online (Sandbox Code Playgroud)
现在为了获得相同的功能,我必须这样做。
GridRecords = await Http.PostAsJsonAsync<List<LocationEntity>>("api/GetLocations", datalist)
.Result.Content.ReadFromJsonAsync<List<LocationEntity>>();
Run Code Online (Sandbox Code Playgroud)
我还必须传递我的参数,它是一个作为列表的简单实体,因此我有更多的时间来编写。这是简单的代码,但没有增加任何价值。
所以,是的,我正在认真考虑 RestSharp 或替代方案来简化简单的 WebApi 调用。
我不知道这么简单的事情为什么要搞得这么复杂。
我的2分钱。我有点落后了,现在我需要花一天时间更新我所有的 WebApi 调用,因为 MS 决定对签名进行如此大的更改。
如果我使用第三方,我可以更新我的 Blazor 版本,而不必担心我的 API 逻辑需要更改。这就是为所有库使用一个供应商的缺点。
| 归档时间: |
|
| 查看次数: |
20575 次 |
| 最近记录: |