PHP中的RESTful API-优化连续请求?

sdnqo3pr  于 2023-04-19  发布在  PHP
关注(0)|答案(1)|浏览(112)

我在工作(第一次)开发由PHPRESTful API驱动的PHP应用程序(可能使用peej/Tonic)。来自具有直接访问的应用程序,该应用程序可能在页面加载过程中进行20次不同的数据库调用,我试图调和20个API调用= 20次握手的事实(这可以通过Guzzle持久连接来改进),而且还可以连接到数据库的20倍连接。
我相信,通过更好的编程和规划,我可以将所需的API调用减少到每页4-5个。在这一点上:
a)考虑到所有其他可用的优化,是否不值得考虑5x数据库连接+每个页面加载5x握手的延迟?
B)是否有一种现有的方法可以缓解这种情况,而我迄今为止还没有找到?
c)我认为它违反了RESTful编程的原则,但如果我有一个API方法,它本身从其他API端点收集信息(例如,GET supplier WHERE x=y然后GET supplier的产品),是否有一个内部API交互的文档方法(特别是在peej/Tonic或其他框架中)。

k5hmc34c

k5hmc34c1#

请记住,* 客户端 * 应该“向服务器发出‘请求’”,服务器有义务满足“该请求”。服务器可能“执行20个不同的数据库查询”来准备其响应,客户端不需要知道也不需要关心。
客户的观点变成了:“我在乎你告诉我什么,而不是你是怎么做的。”
如果你想直接向客户端发送查询响应,让客户端用这些数据“做脏活”,那么你仍然可以设计你的服务器请求,让服务器一次做很多次查询,并在一次交换中发送所有的结果集。
您的首要任务应该是有效地减少发生的交换次数。返回的数据量 (在合理范围内) 是次要的。
还要考虑到,“当 * 服务器 * 这样做时,工作自然是同步的。”当客户端发出多个异步请求时,这些请求是,* 好吧,*“异步的。”考虑哪种策略对你来说更容易 * 调试。
如果服务器被给予“一个请求去做”,它可以验证请求(从而检查客户端错误),并执行任意数量的数据库操作,也许在一个TRANSACTION中。这种策略将服务器置于一个非常主动的角色,通常比由客户端驱动的交互复杂得多。

相关问题