2

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

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

到目前为止一切顺利......但我想知道这种设计是否对大型 Web 应用程序有意义,因为要在客户端运行的 javascript 代码量会越来越多。

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

任何涵盖该主题的建议、想法或文档链接都将不胜感激;-)

4

2 回答 2

2

Play for Scala 书中有一章关于这个主题。他们使用单一视图作为入口点,就是这样。

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

关于 Play 就没什么好说的了,它是一个很好的暴露 RESTful JSON 服务的平台。我建议您查看JSON 文档并查看ReactiveMongo

于 2013-02-22T09:56:30.740 回答
0

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

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

需要考虑的几点:

  • 客户端身份验证。最好对所有客户端使用相同的方式。
  • At some point you might want to introduce some specialized REST API for one of the clients in order to save bandwith and number of requests. For example mobile landing screen is a typical candidate.
  • You need to document your REST APIs more detailed as the web client devs are not sharing the codebase.
于 2013-02-27T11:53:27.077 回答