Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP RESTful API的困难 问候语, 我真的很想听到你在这方面对应用程序设计的广泛知识!_Php_Database_Orm_Phalcon_Restful Architecture - Fatal编程技术网

PHP RESTful API的困难 问候语, 我真的很想听到你在这方面对应用程序设计的广泛知识!

PHP RESTful API的困难 问候语, 我真的很想听到你在这方面对应用程序设计的广泛知识!,php,database,orm,phalcon,restful-architecture,Php,Database,Orm,Phalcon,Restful Architecture,我是Phalcon的新手,现在用它构建我的第一个基于MySQL和RESTful API的应用程序,但在这一过程中遇到了一些挑战 首先,关于我的应用程序设计,概念如下: 作为应用程序核心的API,由使用它的页面和视图的“UI外壳”包装。 API应该由一组表示DB和业务逻辑的Phalcon模型组成,在这些模型上,一个组件充当一个层,使这些模型可以作为“HTTP服务”访问——通常通过将请求转换为模型名称,并将HTTP动词转换为适当的模型操作(例如:GET=>$account->find()/findF

我是Phalcon的新手,现在用它构建我的第一个基于MySQL和RESTful API的应用程序,但在这一过程中遇到了一些挑战

首先,关于我的应用程序设计,概念如下: 作为应用程序核心的API,由使用它的页面和视图的“UI外壳”包装。 API应该由一组表示DB和业务逻辑的Phalcon模型组成,在这些模型上,一个组件充当一个层,使这些模型可以作为“HTTP服务”访问——通常通过将请求转换为模型名称,并将HTTP动词转换为适当的模型操作(例如:GET=>$account->find()/findFirst(),PUT=>$account->update([params]),等等)

我确信Phalcon模型将使我不用编写大部分SQL,但是,很快我遇到了一些非常常见的场景,这些模型无法以我预期的方式处理:

  • 例如,您有一些实体,如消息,您希望使用其他相关实体(如拥有这些消息的用户的名字)的列来查询它们。一个模型不能在一次操作中做到这一点

  • 我想显示一个消息列表,每个消息都附有发送它的用户的详细信息。在Phalcon中,首先想到的是利用model relations功能,但进一步思考后,我意识到这将对呈现的每条消息执行完整查询,这是灾难性能方面的问题,而不是在某个单一的联合查询中检索所有消息及其用户详细信息

  • 我想显示一个用户列表,每个用户都有一个消息总数。除了包含COUNT()字段和GROUP BY或子查询的完整查询之外,没有其他方法可以实现这一点

我试图查找这样的用例和其他用例,对于大多数用例,似乎没有任何优雅的解决方案

重点是: 我想要实现的是一个基于API的体系结构,该体系结构合理、可扩展且易于定制,以适应现实世界的场景(能够处理上述明显的情况)

在Phalcon你会怎么处理我遇到的问题

你觉得我的设计理念怎么样?这有点标准,有意义吗

最重要的是,您如何设计一个完整而灵活的API,而不在任何地方重复繁琐的SQL查询(如果有的话)? 您是否有任何参考资料或已知公司在这方面的做法的例子

这是一个大问题,任何帮助都将是巨大的! 谢谢 Dor.

首先是一个小小的免责声明:这个问题没有直接的答案,所以Stackoverflow不是他们的地方。但既然你说得很好,我会尽力帮你:)

几乎任何现代CMSAPI都有一种非常类似的方法,非常成功和灵活,您可以按照他们的指导方针实现自己的API。我推荐和文档页面,它们有一系列的陷阱和模式,我最终成功地将它们添加到了我自己的项目中

Phalcon是RESTfull API的一个不错的选择,一个使用Phalcon构建的cms项目就是证明。一旦你设计了你的API,去检查PhalconEye的源代码,获取一些关于如何用Phalcon实现这些东西的示例


祝你好运

我想一个框架本身并不足以满足现实世界的一些需求。谢谢你的解释,你的资源是我能得到的最好的帮助!是时候让我发挥创意了。。。