【发布时间】:2012-09-27 19:59:26
【问题描述】:
我目前正在开发一个网络应用程序,该应用程序严重依赖移动和桌面客户端向网络服务器咨询信息。这可以很好地完成,使 RESTful API 可用于处理此问题。所以我的想法是让应用程序充当“平台”,在幕后处理所有真实的业务逻辑和数据库信息。
我的计划是让平台使用 symfony2 和 OAuth 2.0 身份验证机制,并结合 RESTful Web 服务。
现在我真正的困境出现在网站组件上。理想情况下,我想将该网站视为另一个向该 REST 平台询问信息的客户端,并将其与平台本身完全分开。
为了更清楚一点,假设我们正在使用这种架构制作博客,因此会有一个“平台/后端”,提供用于列出文章的休息服务,例如:/articles/5。这在后端,使用 symfony2/doctrine 意味着应用程序有一个 Article 模型类,这些可以从数据库中请求。一个简单的控制器查询文章编号 5 并以 JSON 格式返回所有信息。
现在这个例子中的网站,可以做简单的事情,也有一个文章实体,直接查询数据库,但我认为如果它可以通过它的 REST api 与平台对话并使用它会更干净该信息作为实体的“后端”。
所以真正的问题是,有没有使用 symfony2 支持这种设计?实体是否依赖 REST api 进行 CRUD 操作?或者我最好将平台/网站变成一个单一的东西并与所有通用实体共享一个“CoreBundle”?
【问题讨论】:
-
您找到解决方案了吗?我会感兴趣的。
-
其实我做到了。我最终让网站成为另一个客户端并通过 http 请求从平台请求数据。我正在使用 guzzle(使用我自己的用于 symfony2 的 GuzzleBundle)发出请求并将 JSON 响应自动反序列化为实体。在 Web 端,我实际上有重复的实体,但没有任何原则映射,并且在某些情况下,后端的实际业务实体与前端所需的数据之间的实际数据不同。如果它对你有任何用处,我的 guzzle 包位于 github.com/xamado/guzzle-bundle
-
谢谢!所以您实际上对您网站上的每个请求都有两个请求?这是我想避免的事情..
标签: web-services rest symfony