graphql钩子

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

新建GraphQL钩子

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

2,在数据源新建页面,选择 脚本-> GraphQL,设置名称为:custom

3,系统自动初始化如下脚本。

graphql 钩子

默认填充的是示例代码,你可以根据业务需求修改代码。

4,在main.go中匿名引入该包,然后重新启动钩子服务

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

6,同时,钩子服务自动内省该端点,并将内省产graphql schema物存储到文件:custom-x/customize/custom.json

7,Fireboom服务每秒触发1次健康检查,将获取如下结果:

可以看到 report.customizes 中包含custom服务。接着读取步骤6中的子图graphql schema,合并到Fireboom 超图 中。

如果report没有变化,则不会触发编译!

8,最后,Fireboom发送通知,触发控制台更新,在数据源面板展示 custom 数据源。

graphql控制面板

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

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

内省graphql

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

IntrospectionQuery content
内省

构建API

在Fireboom的超图面板中构建OPERATION,生成REST API供客户端使用。

将GraphQL钩子转变成REST API

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

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

示例

最后更新于

这有帮助吗?