graphql钩子

为了进一步提升开发体验,Fireboom在HOOKS框架中集成了graphql端点。它本质上是一个内置的grphql数据源。可以用来实现复杂的业务逻辑。

该方式有循环依赖,要遵循下述方法绕开依赖!你也可以自行在HOOKS SDK中实现GraphQL服务。

新建GraphQL钩子

1,在 Fireboom 控制台点击数据源面板的+号,进入数据源新建页。

2,在数据源新建页面,选择 自定义-> 脚本,设置起名称为:Custom

3,系统自动初始化如下脚本。默认填充的是示例代码,你可以根据业务需求修改代码。

graphq钩子

4,在数据源列表,右击 开启当前钩子,然后重新启动钩子服务

5,钩子服务启动后,将注册对应的graphql服务端点,其路由格式如下:

graphql控制面板

Get请求上述端点时,默认打开 graphql 控制面板。

其原理的是:读取helix.html文件,修改其中${graphqlEndpoint}为web界面请求路径。

内省graphql

post 请求上述端点,按照如下格式,可以获得其graphql schema。

IntrospectionQuery content
内省

构建API

由于Fireboom服务依赖钩子服务,因此,需要按照如下步骤操作。

  • 开启钩子:开启graphql钩子后,Fireboom将重新生成HOOKS 项目,将该钩子合成到对应文件

  • 重启钩子:手动重新启动钩子服务,保证钩子服务注册了graphql路由

  • 重新编译:在Fireboom控制台,点击右上角的“编译”按钮,内省该数据源

通过上述方式拿到的GraphQL SCHEMA被作为子图合并到Fireboom 超图 中,详情 查看 超图

接着,我们就可以在Fireboom的超图面板中构建OPERATION,生成REST API供客户端使用。

将GraphQL钩子转变成REST API

通过该方式可以实现任意复杂的业务需求!且可以复用Fireboom的权限体系。

此外,通过该方式可以将消息队列接入到Fireboom中,将事件订阅转变成GraphQL SUBSCRIPTION,然后转变成SSE推送,供客户端消费!

示例

最后更新于

这有帮助吗?