apollo 的 plugin 是在 apollo server 启动时候注册的,其形态是一个 js object. 在其中,可以通过 key 指定针对不同事件阶段的自定义处理函数。
events 其实是 apollo 处理请求的 life cycle 中的一系列时间点上触发的。可见,针对 web 请求的框架设计方式,不同框架有不同的做法。OO 语言通常会通过类继承的方式,如 asp.net 这种。而 js / ts 语言则比较灵活,通过普通 js object + key 即可定义出一个契约,实现方式比较松散自由。