Jus*_*ony 37 rest restsharp servicestack
我一直无法做出明确的选择,并希望有人(或几个人的组合)可以指出使用RestSharp与ServiceStack的客户端服务之间的区别(请记住我已经在使用ServiceStack进行服务) .这是我到目前为止(仅差异).该列表相当小,因为它们确实非常相似:
我倾向于使用RestSharp,因为它更倾向于直接使用POCO和非常少的字符串操作,但我认为ServiceStack可能是可以接受的,可以获得更容易阅读的验证和代码.
那么,这里有一些问题:
我知道这不是一个完全主观的问题,但至少我正在寻找这个问题的答案(这是主观的):
myt*_*thz 53
作为ServiceStack的项目负责人,我可以列出ServiceStack Service客户端的一些功能:
ServiceStack服务客户端在使用ServiceStack Web服务及其约定时表现出色.即,它们内置了对结构化验证和错误处理的支持,以及所有客户端实现相同的接口,因此您可以使用相同的单元测试作为 JSON,JSV,XML,SOAP甚至每个的集成测试.Protobuf服务客户端 - 允许您轻松更改服务使用的端点/格式,而无需更改代码.
基本上,如果您正在使用ServiceStack Web服务,我建议您使用ServiceStack客户端,这样您就可以重新使用您定义Web服务的DTO,从而为您提供端到端的类型化API.
如果您正在使用第三方API,我建议使用RestSharp,这是一个非常适合该任务的更通用的REST客户端.此外,由于ServiceStack只是通过线路返回干净的DTO,它也很容易从RestSharp中消耗,如果您更喜欢它的API也是一个不错的选择.
ServiceStack现在提供了一个替代选项,用于使用其HTTP Client Util扩展方法来使用第三方API,该方法提供DRY,可读的API围绕常见的HttpWebRequest访问模式,例如:
List<GithubRepo> repos = "https://api.github.com/users/{0}/repos".Fmt(user)
.GetJsonFromUrl()
.FromJson<List<GithubRepo>>();
Run Code Online (Sandbox Code Playgroud)
网址扩展名
var url ="http://api.twitter.com/statuses/user_timeline.json?screen_name={0}"
.Fmt(name);
if (sinceId != null)
url = url.AddQueryParam("since_id", sinceId);
if (maxId != null)
url = url.AddQueryParam("max_id", maxId);
var tweets = url.GetJsonFromUrl()
.FromJson<List<Tweet>>();
Run Code Online (Sandbox Code Playgroud)
替代内容类型
var csv = "http://example.org/users.csv"
.GetStringFromUrl(acceptContentType:"text/csv");
Run Code Online (Sandbox Code Playgroud)
HTTP Utils wiki页面提供了更多示例.
| 归档时间: |
|
| 查看次数: |
13694 次 |
| 最近记录: |