我有一个RESTFul web服务的要求。 由我的团队决定是否使用Jersey或Restlet或RESTEasy或其他方法。 在省略其他框架之后,我们无法在RESTEasy和Jersey之间进行select。 由于两者似乎差不多,我们应该考虑什么呢? 客户端API应该简单而丰富。 我们已经在生产中使用JBoss 5.1了。 请让我知道泽西岛和RESTEasy的利弊。 除了它来自JBoss之外,我无法find泽西岛上任何有效的点。
我的意思是,真的,SOAP有什么意义? Web服务已经存在了一段时间,一段时间以来,“SOAP”和“Web服务”这两个术语在很大程度上是可以互换的。 然而,SOAP总是显得笨重,并且大大地过于复杂。 然后REST就出现了,Web服务突然变得有意义了。 正如Joel Spolsky所说的,给程序员一个REST的URL,他们就可以马上开始使用这个服务,搞清楚了。 SOAP在WSDL和大量详细的XML背后被模糊处理,尽pipe是基于Web的,但是不能做任何事情就像使用Web浏览器访问SOAP服务一样简单。 所以我的问题的本质是: 有没有什么好的理由selectSOAP而不是REST? 你现在在用SOAP吗? 如果界面是REST,会更好吗? 我错了吗?
我正在为PHP中的应用程序编写一个RESTful API模块,在动词HEAD和OPTIONS上我有点混杂。 OPTIONS用于检索给定资源的可用HTTP动词? HEAD用于确定给定资源是否可用? 如果有人能澄清*这些动词,那将是非常感激。 *澄清是关于重用HTTP动词的RESTful API体系结构。 我已经认识到HEAD和OPTIONS不应该被重新使用,而是像任何HTTP应用程序那样performance可预测性。 哦,2年后我们如何成长。
我一直在使用JAX-RS参考实现(Jersey)做一些工作。 我知道至less有两个其他框架(Restlet和Apache CXF)。 我的问题是:有没有人在这些框架之间做过一些比较,如果是的话,你会推荐哪个框架,为什么?
我想在我的RESTful API中支持分页。 我的API方法应该通过/products/index返回产品的JSON列表。 但是,可能有成千上万的产品,我想通过它们进行翻页,所以我的请求应该是这样的: /products/index?page_number=5&page_size=20 但是,我的JSON响应需要什么样子? API消费者通常期望在响应中使用分页元数据吗? 或者只是一系列必要的产品? 为什么? 它看起来像Twitter的API包含元数据: https : //dev.twitter.com/docs/api/1/get/lists/members (请参阅示例请求)。 元数据: { "page_number": 5, "page_size": 20, "total_record_count": 521, "records": [ { "id": 1, "name": "Widget #1" }, { "id": 2, "name": "Widget #2" }, { "id": 3, "name": "Widget #3" } ] } 只是一个产品arrays(没有元数据): [ { "id": 1, "name": "Widget #1" […]
我们正在开发一个基于REST的应用程序,使用Visual Studio 2010,使用asp.net web api,我们希望使用IIS来托pipe它。 对于客户端,我们希望使用纯html,css和javascript来访问和使用这个基于REST的应用程序。 但是我们无法在VS 2010中find任何项目types的HTML Web应用程序或站点。我们不想使用asp.net或mvc空项目。 是否有任何可用的项目types或任何其他最好的方法来做到这一点?
我实际上是新的REST WS,但我真的不明白这个415 Unsupported Media Type 。 我在火狐上testing了我的REST和Poster, GET对我来说工作正常,也是POST (当它是一个application/xml ),但是当我尝试application/json根本没有达到WS时,服务器拒绝它。 这是我的url:http:// localhost:8081 / RestDemo / services / customers / add 这是我发送的JSON : {"name": "test1", "address" :"test2"} 这是我发送的XML : <customer> <name>test1</name> <address>test2</address> </customer> 这是我的资源类: @Produces("application/xml") @Path("customers") @Singleton @XmlRootElement(name = "customers") public class CustomerResource { private TreeMap<Integer, Customer> customerMap = new TreeMap<Integer, Customer>(); public CustomerResource() { // […]
我们使用Spring Boot / MVC和基于注解的java-config来实现一系列RESTful服务,并且我们希望在某些API响应上select性地启用HTTP GZIPstream压缩。 我知道我可以在我的控制器和byte[] @ResponseBody手动执行此操作,但是我们更愿意依靠SpringMVC基础结构(filter/ etc),并自动执行JSON转换和压缩(即方法返回一个POJO)。 如何在ResponseBody或embedded式Tomcat实例中启用GZIP压缩,并以某种方式select性压缩一些响应? 谢谢! PS .:我们目前没有任何基于XML的configuration。
我正在开发在后端使用一些stream行的web框架的restful web应用程序,比如(rails,sinatra,flask,express.js)。 理想情况下,我想用Backbone.js开发客户端。 我如何只让我的JavaScript客户端与这些API调用进行交互? 我不希望这些API调用是公开的,并通过curl调用,或者只是通过在浏览器中input链接。
我正在创build一个RESTful API来处理一些用户交互,包括使用存储的信用卡下订单。 在订单成功的情况下,我将返回200 OK,如果订单请求格式错误或无效,我将返回400错误请求。 但是,如果在订单的实际处理过程中出现问题,我该怎么办? 客户端POSTS命令为服务器用户资源。 如果用户不存在,则返回404 Not Found。 订单格式和信息经过validation。 如果无效,则返回400错误请求。 订单已处理。 如果订单成功,则会为订单返回201 Created。 如果遇到意外错误,则返回500服务器错误。 最后一步是问题 – 如果订单因其他原因没有完成,我将返回什么? 可能的情况可能包括: 产品售罄 已达到用户最高订单限制 信用卡交易失败(资金不足等) 这似乎并不适合400或500.如果没有更好的代码,我可以看到它是400,根据业务规则,请求无效。 这似乎并不准确。 编辑:也发现了同样的话题这个现有的讨论 。 所有的答案似乎都指出了使用状态代码来处理这种违规行为,在使用400,409或422扩展之间进行了一些讨论。