2013-02-22 47 views
2

我刚刚阅读了单页面Web应用程序,该应用程序公开了一个用于检索数据的RESTful接口 - 例如以JSON格式,并且只提供一个引用负责调用JavaScript文件的HTML页面RESTful界面以及在客户端的Web浏览器中动态构建Web用户界面。单页面播放应用程序

要在Play中实现此功能,应该实现控制器,以便它们返回JSON而不是HTLM,并实现一些CoffeScript以在客户端呈现用户界面。

到目前为止这么好...但我想知道这种设计是否适用于大型Web应用程序,因为在客户端运行的JavaScript代码的数量会越来越多。

我最初的想法是使用Play的模板引擎实现Web应用程序,然后为移动应用程序提供RESTful接口。

任何建议,想法,或链接到文件覆盖这个话题将非常感激;-)

回答

0

提供一个通用的REST API应该可以正常工作。目前,我正在为浏览器(Backbone等)和iOS客户端使用Play 2.0服务器应用程序。浏览器客户端与Play应用程序完全分开并独立部署。

我认为与Play模板方法相比,有一些初始开销,但只有一组控制器来测试等,使生活更轻松。

需要考虑以下几点:

  • 客户端身份验证。最好你对所有的客户使用相同的方式。
  • 在某些时候,您可能想要为其中一个客户端引入一些专用的REST API,以节省带宽和请求数量。例如,移动登陆屏幕是一个典型的候选人。
  • 由于Web客户端开发人员不共享代码库,因此您需要更详细地记录您的REST API。
1

Play for Scala book有关于这一主题的一章。他们使用单一视图作为切入点,就是这样。

至于大型应用程序,这是一个值得关注的问题。为此,您可能需要使用诸如RequireJS(Play 2.1内置支持)等库。您也可能希望将您的应用分成多个子模块来管理复杂性。在客户端,您可能也应该使用框架,例如AngularJS

关于Play没什么值得说的,它是公开RESTful JSON服务的非常好的平台。我建议你看看JSON documentation,也可以看看ReactiveMongo