过去几年我在Java和C#上蹦蹦跳跳,但现在想要加快Web服务(RESTful)的速度。我曾经是大约2003年的J2EE大师,但后来被追踪到各种各样的东西。我已经完成了几个NetBeans教程(我选择的IDE),但它们似乎并没有暴露出细微之处。我喜欢看到事情的确切工作,从字节数组构建应用程序。
虽然我已经触及了几个框架,但我最喜欢使用Java EE,以便在添加Spring / Hibernate的糖之前理解基本情况。
这有意义吗?我正在寻找一本书或教程,它真正地逐步建立你的知识,以便你理解一切,而不是一些类似Rails的快速开发工具包。
由于式提前,
Guido
答案 0 :(得分:2)
我首先回顾一下HTTP,因为在实践中,这是REST Web服务的基本构建块,它可以帮助您进入下一步的正确思维模式。
接下来,考虑如何为各种资源构建URI。 Martin Fowler在这个主题上写了a good article。用于创建Web服务的各种Java框架尝试使您更容易将请求映射到特定方法,甚至将请求的一部分(包括路径元素,查询参数和整个请求主体)直接映射到对象模型中。但所有这些只是通过URI识别和操纵资源。
接下来,如果您的资源相关,请考虑hypermedia controls。您可能习惯在网页中添加<a href="">
个链接,您当然不希望人们对您网站中的每个网址进行硬编码或书签。如何将相同的想法扩展到Web服务?
接下来,考虑实际在客户端和服务器之间移动数据。 JSON还是XML? URI元素或查询参数?同样,为了使这更容易,存在许多java框架 - 例如,用于REST的Jackson和Gson,用于XML的JAXB等等 - 但是处理基于HTTP的请求和响应的问题非常类似于几年前你的平均servlet容器已经解决了。
最后,考虑安全性。例如,用户名/密码还是OAuth? HTTP还是HTTPS?
还有很多其他细节,但这些话题应该会让你忙碌一段时间。
答案 1 :(得分:1)
你有签出Jersey了吗?这是JAX-RS的Java参考实现。这个项目周围有一个很棒的社区,主要作者可以通过邮件列表和论坛获得,并亲自回答了我遇到的一些问题。球衣网站有很多很好的链接,可以让你从各个角度开始,这取决于你有兴趣学习什么。
答案 2 :(得分:1)
RestifyDayTrader详细介绍了如何构建RESTFul服务。 可以在Restified Trader
找到Java实现答案 3 :(得分:0)
Java Web Services是学习Web服务的好读物。