作为序言,我是 Web 开发的新手。我正在考虑围绕各种有价值的文档库(初始 CRUD 功能)创建一组核心 RESTful Web 服务。在这样做的过程中,我在理论上创建了一个完全可重用和可扩展的后端,以供将来意料之外的应用程序使用。
我的问题围绕着这样做的最佳实践。我最初的要求还要求我创建一个独特的前端。我会做前端和后端完全独立的项目以提高可重用性。这会增加开销。
考虑使用 GWT、Restlet 和 Java EE 技术堆栈是否会影响设置。
作为序言,我是 Web 开发的新手。我正在考虑围绕各种有价值的文档库(初始 CRUD 功能)创建一组核心 RESTful Web 服务。在这样做的过程中,我在理论上创建了一个完全可重用和可扩展的后端,以供将来意料之外的应用程序使用。
我的问题围绕着这样做的最佳实践。我最初的要求还要求我创建一个独特的前端。我会做前端和后端完全独立的项目以提高可重用性。这会增加开销。
考虑使用 GWT、Restlet 和 Java EE 技术堆栈是否会影响设置。
最重要的是设计一个干净的 Java API - 独立于 REST、RMI 或您想要使用的任何协议。从一个干净的 Java API,您可以支持任何访问方法。
除非您有这些其他访问方法的用例,否则不要现在构建它们。您可以在需要时构建它。
最初添加的最简单的界面是基于 Web 的界面,您的 Web 应用程序在与您的核心 API 相同的 JVM 中运行。如果这适用于您的用例,我会这样做。构建一个单独的控制台应用程序,通过 REST(或其他)协议访问您的核心 API 需要更多的工作。
Martin Fowler 不久前写了一篇关于 REST 基础的非常好的文章:Richardson 成熟度模型。发现理解 REST 的原理非常有帮助。
如果你想使用基于 REST 的后端服务,你应该使用RestyGWT项目,它允许你使用 GWT-RPC 编程风格来访问基于 JSON 的 restful 服务。
与传统的 GWT-RPC 服务相比,使用基于 REST 的 JSON 服务的好处在于,这些服务可以被其他客户端使用,甚至可以更轻松地用于 mashup。
我和一位同事编写了一个 GWT 系统,它使用单独的前端和后端项目。保持代码在哪里执行是有帮助的。但我不确定我是否会在未来的系统中分离事物。
此外,鉴于您是 Web 开发的新手,我认为您不应该期望制作一个完全可重用的后端。你会在学习过程中学到很多东西。我认为敏捷编码人员会推荐一种迭代方法:(a) 让一个小方面工作,然后 (b) 重构它以使其美观。