【问题标题】:MVC style application architecture catering to API迎合 API 的 MVC 风格应用架构
【发布时间】:2011-07-02 21:40:54
【问题描述】:

我正在开发一个“社区”风格的网站,既是为了好玩又是为了盈利,虽然它的美学元素很好,但我还没有认真研究应用程序逻辑,原因是我的方法不确定。

我正在创建一个 PHP 驱动的 MVC 样式框架,希望可以重用它的组件,但是我注意到许多现有的 MVC 框架使用一种“约定优于配置”来加快整个过程。我打算运行的一些查询比SELECT * FROM entity_name 稍微复杂一些。

我想分层设计应用程序,以便可以对服务器进行 API 调用。我想不是做任何事情两次,而是在这一层之上构建我的站点控制器,以便一切都遵循一个标准。这将允许 Ajax 调用、远程 Web 应用程序调用等遵循与文档 Web 请求相同的请求规范化和响应路径。

无论如何,也许其中大部分是不必要的细节,但是任何人都可以对这种性质的 API 分层 MVC 架构有所了解吗?由于 API 级别(模型层)是最终读取/写入数据的地方,我是否希望在此级别合并身份验证,或者将其抽象到更高级别并使其成为入口点?我还应该考虑哪些我没有提到的其他注意事项?

我知道我还有很多阅读工作要做,因此非常欢迎任何有关阅读材料的建议或个人经验的建议。提前致谢。

【问题讨论】:

  • 根据我的意见,我会考虑创建一个 WCF 服务层,作为我的 MVC 的模型。只是一个思考的食物....

标签: php ajax model-view-controller api


【解决方案1】:

这是一个很好的问题。我认为我最好的选择是尽可能多地使用带有 REST 资源的 SOA 方法另一个可以使用简单的 DTO(以数组的形式)并使用自定义查询从数据库中检索数据。

【讨论】:

  • 感谢 nicobn; 在进一步阅读和考虑之后,这是我前进的方向,使用伪 REST 实现。现在,无论请求类型如何(API 请求由isset($_GET['api']) 确定),我都在使用单个入口点配置架构。根据请求类型,ApiRouterWebRouter 的实例用于请求路由。全局Response 对象负责整理数据,路由器在注入模板或以 JSON 形式返回后将其返回。而不是分层,我想我要的是透明的实现。
猜你喜欢
  • 2017-09-02
  • 2011-11-29
  • 2014-02-19
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
相关资源
最近更新 更多