这些是RestSharp和ServiceStack的主要区别吗;客户机代码?
我一直无法做出明确的选择,希望有人(或几个人的组合)能够指出使用RestSharp和ServiceStack的客户端服务之间的区别(请记住,我已经在使用ServiceStack提供服务)。以下是我到目前为止的情况(仅不同之处)。这个列表相当小,因为它们确实非常相似: ServiceStack 赞成的意见这些是RestSharp和ServiceStack的主要区别吗;客户机代码?,rest,servicestack,restsharp,Rest,servicestack,Restsharp,我一直无法做出明确的选择,希望有人(或几个人的组合)能够指出使用RestSharp和ServiceStack的客户端服务之间的区别(请记住,我已经在使用ServiceStack提供服务)。以下是我到目前为止的情况(仅不同之处)。这个列表相当小,因为它们确实非常相似: ServiceStack 赞成的意见 从我已经创建的服务POCO对象进行流畅的验证 一个用于客户端和服务的API 代码读起来更好(即Get(),Post()) 欺骗 必须写出我的一些字符串(即,如果我使用查询参数发出GET请求
- 从我已经创建的服务POCO对象进行流畅的验证
- 一个用于客户端和服务的API
- 代码读起来更好(即Get(),Post())
- 必须写出我的一些字符串(即,如果我使用查询参数发出GET请求,我必须在代码中创建该字符串)
- 我必须为每个请求/响应类型(JsonServiceClient、XmlServiceClient)创建不同的类
- 几乎所有东西都可以是POCO(即,如果我使用查询参数发出GET请求,我只需通过代码添加参数)
- 在请求/响应类型之间切换很简单(Request.RequestFormat=DataFormat.Json/Xml)
- 手动验证(超出数据注释中的范围)
- 需要学习的两个API(这是次要的,因为它们都相当简单)
- 代码不是一目了然(几乎不可读)(即request.Method=Get/Post..,主调用是Execute
())
- 你喜欢哪一种李>
- 为什么是一个而不是另一个
- 我的发现是否有错误和/或遗漏的地方?
更新-使用ServiceStack的HTTP客户端UTIL ServiceStack现在为使用第三方API提供了一个替代选项,它围绕常见的HttpWebRequest访问模式提供了干燥、可读的API,例如:
List<GithubRepo> repos = "https://api.github.com/users/{0}/repos".Fmt(user)
.GetJsonFromUrl()
.FromJson<List<GithubRepo>>();
很遗憾,我认为这个问题将会结束,因为它太主观了。我没有使用servicestack,所以我无法比较它们,但我可以回答或澄清任何restsharp问题。通过两个API来了解您的意思是服务器端的servicestack和消费端的restsharp?我让Demis来代表他的一方:)我猜如果您在服务器端使用servicestack,你最好在消费端也使用它。restsharp实际上是针对任意第三方HTTP/REST的APIs@John希恩:你完全应该自己插手:)作为RestSharp的项目负责人,我完全赞同这个答案。谢谢+1并被接受。很高兴看到你们相处融洽:DI想补充一点,我认为ServiceStack的项目负责人没有意识到他拥有什么。ServiceStack使创建服务变得更容易、更快捷,并且平等地使用自己的服务,因此它也使使用第三方RESTAPI变得超级容易。它的简单请求DTO对查询字符串的序列化,以及它对JSON的简单而快速的解析来响应DTO,这是一个很好的API,只能作为针对Google和许多其他RESTAPI的客户端使用。不反对RestSharp,但在我看来,ServiceStack作为客户端使用更容易、更干净。不要使用RestSharp。使用仍在进行中的东西。
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>>();
var csv = "http://example.org/users.csv"
.GetStringFromUrl(acceptContentType:"text/csv");