【问题标题】:Best way to build RESTful services using Zend Framework 3使用 Zend Framework 3 构建 RESTful 服务的最佳方式
【发布时间】:2017-04-16 19:06:06
【问题描述】:

我们正在启动一个新项目,该项目将利用 RESTful 服务与 Web 客户端 (AngularJS) 和移动平台(Android 和 iOS)进行通信。

这个想法是将业务逻辑隐藏在 RESTful 服务中,并为 Web 客户端和移动平台使用相同的代码。

我们的服务器是使用 Zend Framework 3 用 PHP 构建的(我是该框架的新手)。该应用程序将包含数十个实体和数百个服务。

我在网上注意到 ZF2 似乎有一个 REST 模块,但我找不到 ZF3 的模块(至少在文档中没有)。

我的一些问题:

  • 使用 ZF3 提供 RESTful 服务的最佳途径是什么?
  • 我要安装 ZF 模块吗? ZF3 有什么东西可以使用吗?
  • 我应该在代码中为我的服务创建一个模块吗?对方要不要 模块调用此 REST 模块进行业务逻辑?

【问题讨论】:

  • 您会发现使用apigility 非常容易,它基于 ZendFramework,已经解决了 RESTfull 协议、请求验证、响应格式的全部问题
  • 这不是stackoverflow的真正问题,而是一个辩论主题。
  • 我工作过的大部分项目都将业务逻辑保存在单独的 ZF 模块中,这些模块将通过服务公开数据,然后从 Apitility 的控制器/资源中查询这些服务。
  • 感谢 Dragos 的 Apigility 提示。顺便说一句,评论:在 SO 中输入“Best Way”会返回 461,750 个结果,其中大多数是这样的辩论,有数千票。很遗憾,我们不能再分享 SO 中的架构疑虑,因为其中大部分都被禁止。 ZF3 相当新,它对社区了解任何新技术的可能架构设计非常有用......
  • 对不起,我不同意。 SO 是为提出问题和提供响应而构建的。您可以对答案或最佳答案进行投票,甚至不选择投票。提供知识的内容,而不是选票。在开始编写代码之前,架构和设计讨论是最重要的,但这是我的观点。

标签: php rest zend-framework zend-framework3 zf3


【解决方案1】:

ZF3 仍附带AbstractRestController,可在here 找到。 Apigility 可能是您的 REST 应用程序的起点,但您也可以考虑仅实现 Apigility 的某些部分,并在此基础上构建您自己的逻辑。有趣的模块可以在the ZF-Campus GitHUB repository

这些模块中的大部分(如果不是全部)都经过重构以支持 ZF3(并向后兼容 ZF2)。

自己浏览存储库,因为您可能会发现其他有用的模块。

【讨论】:

  • 感谢 Wilt 的 cmets。所以我正在考虑为 REST 服务构建一个模块(RESTModule,即)和几个控制器,每个实体组一个,比如UserRestController(用于用户信息),SalesRestController(用于销售信息), InvoiceRestController(用于开发票)等等……这有意义吗?
  • 是的,这是有道理的。在 Apigility 中,您有资源侦听器,在这种情况下,每个实体类型都有一个 ResourceListener。集合和单例都在同一个控制器/监听器中处理。
猜你喜欢
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多