为什么?
我对开放源码技术很感兴趣,但是对于webservices来说,除了.NET webservices之外,我没有任何经验.
此外,我目前正在使用大量的Java和Python,而我正在从Microsoft技术栈移开.
请用任何编程语言来建议替代方案,但是要解释为什么它是好还是更好的原因. (这个原因可能与语言的选择密切相关)
我想知道什么?
>使用方便
>安装
>配置
>生成能力
> IDE集成
>部署
>学习曲线
利弊
>等
Spring使用基于注释的控制器,可用于将URL绑定到控制器中的方法.注释用于区分GET方法和POST方法.
@RequestMapPing(value="/hotels/{hotel}/bookings/{booking}",method=RequestMethod.GET)public String getBooking(@PathVariable("hotel") long hotelID,@PathVariable("booking") long bookingID,Model model) { Hotel hotel = hotelService.getHotel(hotelID); Booking booking = hotel.getBooking(bookingID); model.addAttribute("booking",booking); return "booking";}
在引擎盖下,URI字符串中的变量“hotel”也被转换为参数列表中的一个长. Spring REST还可以使用相同的技术将JsON对象编入自定义类.请注意,此方法注释为RequestMethod.GET,这意味着它被调用为GET请求而不是POST请求.
Spring 3.0 REST使得创建RESTful Web服务变得更加容易,无需重新开发轮子,也可以通过手工从/对Java对象进行组装/解组JsON文本.
在SpringSource博客上有一个演示文稿,即REST In Spring MVC.学习曲线很低,但是由于依赖关系,让演示工作可能需要一些时间.一旦你得到安装并且有一个工作的演示,最难的部分应该结束.
对于IDE集成,请查看Spring Roo.我没有使用它,但我听说它有一些与Eclipse IDE集成的功能,使您的生活更轻松.
Restlets:
Restlets仅用于REST.因此,开销比Spring 3.0低很多. Restlets更适合您没有GUI的情况,以及您不关心MVC的情况. Restlet可以轻松地用作服务器和客户端.它还具有可以运行的嵌入式服务器,无需像Jetty或Tomcat这样的容器.
我很少接触到Python,但是从我看到Google App Engine实现的webApp框架看,路由器的概念感觉非常相似.具有Python背景的人可能会发现学习曲线要低得多:
@OverrIDepublic Restlet createInboundRoot() { Router router = new Router(getContext()); getConnectorService().getClIEntProtocols().add(Protocol.file); // Serve the files generated by the GWT compilation step. Directory dir = new Directory(getContext(),LocalReference.createfileReference(new file("war/"))); router.attachDefault(dir); router.attach("/contacts/123",ContactServerResource.class); return router;}
它在客户端使用GWT;我更喜欢把这个部分,因为它提醒我太多的Java Swing.虽然有些人可能会发现有利,但我个人的喜好是坚持使用更像Web的技术.
以下是使用独立模式的REST服务器的简单示例.服务器在端口8182上运行,它监听GET请求.它具有与Spring REST框架类似的基于注释的模型,它也有助于拆分不同的http方法,并将它们指向类中不同的方法.这是一个非常基本的“Hello World”REST示例:
public class FirstServerResource extends ServerResource { public static voID main(String[] args) throws Exception { // Create the http server and Listen on port 8182 new Server(Protocol.http,8182,FirstServerResource.class).start(); } @Get public String toString() { return "hello,world"; }}
查看Restlet Web Site有关Restlets框架的更多信息和示例. Restlet的学习曲线略逊于Spring,因为它的目标是REST;因此,它不包含Spring中包含的所有额外功能,有时可以使问题难以找到答案.如果你正在寻找轻量级的东西,Restlet绝对是要走的路.
这两个框架都将在Tomcat,Jetty以及Google App Engine中运行.
总结以上是内存溢出为你收集整理的Web服务 – 什么好的开源REST Web服务技术在那里?全部内容,希望文章能够帮你解决Web服务 – 什么好的开源REST Web服务技术在那里?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)