Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 413|回复: 0

灵活的 API 设计:为您的 PHP API 管道创建 Hook

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2024-1-14 13:37:44 | 显示全部楼层 |阅读模式
设计应用程序编程接口 (API) 可能是一项具有挑战性的工作。好的 API 具有简单、直观且易于使用的界面。在这个简单的界面背后可能有许多复杂的系统交互,而这些交互确实会使原本明确定义的端点任务变得更加混乱。随着时间的推移,开发人员可能会被要求为现有端点“添加”额外的业务逻辑。然后,在您意识到之前,单个 API 调用正在与十几个系统进行交互,作为其主要流程的一部分。 Backward Skip 10s Play Video Forward Skip 10s 如果我们可以开发一个简单的管道,但能够在以后添加其他任务而不妨碍主流程,那不是很好吗?本文将向您展示如何改编 WordPress 和一般编程的想法,以使您的 API 能够进行更强大的交互。 什么是挂钩/操作? 挂钩(又名操作/过滤器)是 WordPress 社区为事件及其相关回调指定的名称。

如果您有编程经验,您可能会熟悉回调和发布者-订阅者模式。在处理期间,系统可能 决策者电子邮件列表 会触发一个事件,该事件调用零到多个订阅该事件的函数。例如,为了响应加载页面,WordPress 会调用加载标题、加载标题、列出帖子或查找正确模板的函数。这些任务的运行不会扰  乱生成页面的主要过程。 hooks 背后的想法并不新鲜,也不是 WordPress 发明的。然而,WordPress 在服务器端页面处理生命周期中出色地实现了它们。在我看来,这种钩子的使用可能是该平台拥有的最伟大的功能。借助这些挂钩,用户可以编写自己的功能(无论是插件还是主题),这些功能与 WordPress 相关联,并在需要时运行您想要的任何代码。您需要更改发送给用户的标头吗?没问题:挂钩事件wp_headers,您可以根据需要更改标题。



为什么在 API 中使用 Hook? 钩子适用于很多事情,包括触发一些辅助任务、通过 PHP cURL 命令调用另一个系统、构建对象并将其放入任务队列以便稍后由另一个系统拾取、发送电子邮件等等。这一切都可以完成,无需云化给定端点的主要流程(并且可能在此过程中强制使用新的 API 版本)。 如果端点用于创建用户,我们可以专注于在数据库中创建该用户记录,并在此过程中呼叫正在监听的人。也许在创建用户记录后,我们会发出一个事件,说“任何人都在听这个,我刚刚创建了一个用户,这是他们的信息”。也许某些回调函数已订阅该事件并正在侦听,也可能没有。事件其实并不关心。 有了这个系统,我们可以让我们的 API 调用可能稍后编写的代码。我们不需要接触 API 端点代码本身就可以做到这一点。为了演示它是如何工作的,让我们换个方式并展示如何在 PHP API 中启动它的基本机制。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2024-11-22 05:18 , Processed in 0.754489 second(s), 7 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表