前言我是Web开发的新手。我正在寻找围绕一个有价值的文档库(初始CRUD能力)创建一组核心RESTful Web服务。在这样做的过程中,我理论上创建了一个完全可重用且可扩展的后端,以供将来未预料到的应用程序使用。
我的问题围绕着这样做的最佳实践。我最初的要求也让我创造了一个独特的前端。我是否会将前端和后端完全分开,以提高可重用性。这会增加开销。
如果这会影响设置,请查看使用GWT,Restlet和Java EE技术堆栈。
答案 0 :(得分:3)
最重要的是设计一个干净的Java API - 独立于REST,RMI或您想要使用的任何协议。从干净的Java API,您可以支持任何访问方法。
除非您有这些其他访问方法的用例,否则不要立即构建它们。您可以在需要时构建它。
最初添加的最简单的界面是基于Web的界面,您的Web应用程序在与您的核心API相同的JVM中运行。如果这适用于您的用例,我会这样做。构建一个单独的控制台应用程序,通过REST(或其他)协议访问您的核心API是一项更多的工作..
答案 1 :(得分:1)
Martin Fowler在短时间内撰写了一篇关于REST基础知识的非常好的文章:Richardson Maturity Model。发现它对理解REST的原理很有帮助。
答案 2 :(得分:1)
如果要使用基于REST的后端服务,则应使用RestyGWT项目,该项目允许您使用GWT-RPC编程样式来访问基于JSON的restful服务。
与传统的GWT-RPC服务相比,使用基于REST的JSON服务的好处是,这些服务可以被其他客户端使用,甚至可以更容易地用于mashup。
答案 3 :(得分:0)
如果您知道将要使用GWT作为前端,您可能需要考虑使用GWT-RPC而不是REST。更多讨论here。
但是,如果您认为最终可能希望通过REST API公开数据,或者在前端使用其他技术,那么REST可能是更好的选择。
gwt-rest项目也可能有所帮助。
答案 4 :(得分:0)
一位同事和我编写了一个GWT系统,使用前端和后端的单独项目。保持代码执行的位置非常清楚是有帮助的。但我不确定在未来的系统中是否会分离事物。
另外,鉴于您不熟悉Web开发,我认为您不应期望制作完全可重复使用的后端。你会学到很多东西。我认为敏捷编码器会推荐一种迭代方法:(a)使一个小方面起作用,然后(b)重构它以使其美观。