hasura graphql subscriptions 使用】的更多相关文章

  subscriptions graphql 的一项实时数据推送的功能,还是很方便的,自己在直接使用subscriptions-transport-ws npm 包 的时候运行一直有错误(主要是依赖的apollo版本),还好hasura graphql 默认提供了一个开发模版,还是比较方便的 模版clone git clone https://github.com/hasura/nodejs-graphql-subscriptions-boilerplate.git 基本代码集成 使用模版(g…
不像大部分的graphql 引擎,使用标准的graphql 规范的处理模型,Hasura graphql 不存在resolver 的概念(实际上是有的,只是转换为了sql语法) 以下是Hasura graphql 引擎的内幕 表的处理 假设有一张表 profile(id,name) 需要暴露为graphql api ,以下是Hasura 的处理方式 根据表生成一个graphql 类型(type) 根据表生成聚合函数的graphql 类型 同时还会生成关系聚合函数的数据类型 生成查询参数 wher…
torodb 可以方便的将mongo 数据实时同步到pg,hasura graphql 可以方便的将pg 数据暴露为graphql api,集成在一起真的很方便 环境准备 docker-compose 文件 version: '2' services: graphql-engine: image: hasura/graphql-engine:v1.0.0-alpha27 ports: - "8080:8080" command: > /bin/sh -c " graph…
hasura graphql server 社区基于gatsby-source-graphql 开发了gatsby-postgres-graphql 插件, 可以快速的开发丰富的网站 基本使用 安装hasura graphql server 我使用的Heroku 已经部署好了 https://rongfengliang.herokuapp.com/ 说明:后边可能会删了,测试的话,最好的自己搭建 添加表结构以及数据(hasura server) gastby 集成测试 package.json…
hasura graphql server 是一个很不错的graphql 引擎,当前版本已经支持event triiger 了 使用此功能我们可以方便的集成webhook功能,实现灵活,稳定,快捷的消息驱动的应用 webhook 使用benthos ,简单例子参考 https://www.cnblogs.com/rongfengliang/p/9569811.html 一张参考图 环境搭建 使用docker-compose docker-compose 文件 version: '3.6' ser…
hasura graphql 生产的使用是推荐使用webhook 进行角色访问控制的,官方同时提供了一个nodejs 的简单demo 代码 git clone https://github.com/hasura/sample-auth-webhook 代码说明 项目结构 api 格式说明 auth0 auth0/auth0Handler.js var express = require('express'); var auth0Router = express.Router(); var req…
  hasura graphql 的安装可以参考相关项目 创建函数 数据表创建 CREATE TABLE sql_function_table ( id SERIAL PRIMARY KEY, input text NOT NULL, output text ); 创建函数以及触发器 CREATE FUNCTION test_func() RETURNS trigger AS $emp_stamp$ BEGIN NEW.output := UPPER(NEW.input); RETURN NEW…
Hasura 使用pg 数据库存储引擎的元数据信息,在hdb_catalog schema 下面,是在初始化的时候生成的 对于表的管理.权限的信息存储都在这个schema下 hdb_table 这个表包含了所有通过web界面或者cli工具管理的表以及视图 列的定义 table_schema: 表或者视图的schmema table_name: 表或者视图的名称 is_system_defined: 标示是否是系统表 参考例子 hdb_relationship 定义表的约束以及手工添加的关系 列的…
默认官方是提供了gitlab 集成的demo的,但是因为gitlab 一些版本的问题, 跑起来总有问题,所以查找相关资料测试了一个可以运行的版本 项目使用docker-compose 运行 参考 https://github.com/Trantect/docker-compose.yamls 环境准备 docker-compose 文件 version: '2' services: redis: image: sameersbn/redis:4.0.9-1 command: - --loglev…
实际上因为pipelinedb 是原生支持pg的,所以应该不存在太大的问题,以下为测试 使用doker-compose 运行 配置 docker-compose 文件 version: '3.6' services: postgres: image: tkanos/pipelinedb_kafka ports: - "5432:5432" graphql-engine: image: hasura/graphql-engine:v1.0.0-alpha06 ports: - "…
目前从官方文档以及测试可以看出不加任何header的请求访问的是所有的数据,对于具有访问 控制的请求需要添加请求头,实际生产的使用需要集合web hook 的实现访问控制. 参考配置 访问请求 目前数据只有id=1 不匹配的 匹配的 没有添加角色的(获取所有数据) 几张官方的参考图 配置 开发环境测试 生产使用 参考资料 https://docs.hasura.io/1.0/graphql/manual/auth/index.html        …
使用的是apollo 的插件 安装apollo npm install -g apollo 基本使用 因为我使用了模式拼接,所以地址有变动,一般是 http://host:port/v1alpha1/graphql 格式 apollo schema:download --endpoint=http://localhost:8080/graphql 生成的格式 参考资料 https://docs.hasura.io/1.0/graphql/manual/schema/export-graphql-…
具体的使用可以参考下面一张图 有一个术语 graphql-bindings 参考项目: https://github.com/hasura/generate-graphql-bindings https://github.com/graphql-binding/graphql-binding 使用的场景 需要从多个数据源进行数据获取 需要自定义的数据操作(数据校验) api gateway (参考上图) 参考资料 https://www.prisma.io/blog/reusing-and-co…
hasura 使用一个基于pg数据库的graphql引擎,他的设计比postgrpahql 有好多方便的地方,同时使用也比较简单 安装 docker && docker-compose curl -L https://cli.hasura.io/install.sh | bash hasura init --directory my-project cd my-project/install-scripts docker-compose up -d 生成结果 ├── config.yaml…
安装 &&运行pg(docker) version: '3.6' services: postgres: image: postgres environment: - "POSTGRES_PASSWORD:dalong" restart: always ports: - "5432:5432" volumes: - db_data:/var/lib/postgresql/data volumes: db_data: 安装satck haskell 构…
实际上通过上边的介绍,模式拼接和hasura 基本没啥关系了,就是使用graphql-bindings 进行schema 合并了 基本demo 这个是官方提供的demo git clone https://github.com/hasura/graphql-schema-stitching-demo 运行 依赖安装 yarn 运行 HASURA_GRAPHQL_ENGINE_URL=http://localhost:9090 yarn start 效果 使用到的技术 mergeSchemas m…
转自:https://github.com/hasura/graphql-engine/blob/master/architecture/live-queries.md Scaling to 1 million active GraphQL subscriptions (live queries) Hasura is a GraphQL engine on Postgres that provides instant GraphQL APIs with authorization. Read m…
https://github.com/dbohdan/automatic-api 是一个不错的github 知识项目,帮助我们 列出了,常见的的数据库可以直接转换为rest/graphql api 的开源项目 Project name/link Database(s) supported API type Implementation language License GitHub stats Notes ArangoDB ArangoDB REST C++ Apache 2.0 6645 ★;…
文章转自 prisma 官方博客,写的很不错 In this article, we want to understand how we can use any existing GraphQL API and expose it through our own server. In that setup, our server simply forwards the GraphQL queries and mutations it receives to the underlying Grap…
概述 反向代理代码 对请求的处理 对返回值的处理 遇到的问题 概述 一直在寻找一个好用的 graphql 服务, 之前使用比较多的是 prisma, 但是 prisma1 很久不再维护了, 而 prisma2 仅仅就是一个 ORM, 不是一个完备的系统. 后来, 朋友介绍了一个 graphql 引擎 hasura, 这个是完备的系统, 不仅提供 UI 来创建数据库和表结构. 还有相应的权限控制, 也有对接第三方服务的 Events, 对数据更多控制的 Actions. 为了使用其 graphql…
云原生(Cloud Native)Node JS Express Reactive 微服务模板 (REST/GraphQL) 这个项目提供了完整的基于 Node JS / Typescript 的微服务模板,包括生产部署.监控.调试.日志记录.安全.CI/CD 所需的所有功能.还添加了基于响应性扩展的示例,以演示如何将其用于构建微服务 API 边缘服务(edge-service).前端的后端(BFF)或将其用作构建任何类型微服务的基础. 项目地址:nxplorerjs-microservice-…
cncf landscape CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database Vitess:itess is a database clustering system for horizontal scaling of MySQL. Apache CarbonData:Apache CarbonData is an indexed columnar data format…
CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database Vitess:itess is a database clustering system for horizontal scaling of MySQL. Apache CarbonData:Apache CarbonData is an indexed columnar data format for fast analyt…
  graphql 协议是支持数据的实时订阅功能的(一般基于websocket 进行实现) prisma 支持客户端订阅以及服务器端订阅(类似webhook),可以方便将 数据推送后端服务 目的 prisma 实现这个功能是方便集成当前的serverless 基础设施,当前支持的是通过webhook 的模式进行时间传递 参考配置 endpoint: ${env:PRISMA_ENDPOINT} secret: ${env:PRISMA_SECRET} datamodel: database/da…
continuous view 是 pipelinedb的核心,类似一个view,但是数据是合并了stream以及table的数据输入数据,并且是 实时根据输入数据进行更新的 语法 CREATE CONTINUOUS VIEW name AS query query是一个pg 的select 格式的语法,格式如下: SELECT [ DISTINCT [ ON ( expression [, ...] ) ] ] expression [ [ AS ] output_name ] [, ...]…
  接口就是一个约定,方便数据的约定,union 可以实现数据类型的共享,减少代码量 基本项目 参考 https://github.com/rongfengliang/graphql-yoga-dockerdemo 项目结构 ├── Jenkinsfile ├── README.md ├── app.js ├── docker-compose.yml ├── dockerfile ├── package.json ├── schema.graphql └── yarn.lock interfac…
原文链接,欢迎讨论: [Q023]websocket 服务多节点部署时会有什么问题,怎么解决 你来说说 websocket 有什么用 双向通信,服务器端可以主动 push,给客户端发送通知 那websocket多个节点有什么问题? 头条面试官的提问让我的回忆飘到了一个下午,想起了我两个同事之间的对话 引子 咱有部分用户收不到通知了 通知是由ws服务控制的,它最近是有啥改动么 也没改啥,以前单个节点也没有问题 想起来了,接上面通知,把服务都从单节点改成了多节点 对,说是为了什么 HA,两位数用户的…
关于一个 websocket 多节点分布式问题的头条前端面试题 https://juejin.im/post/5dcb5372518825352f524614 你来说说 websocket 有什么用? 双向通信,服务器端可以主动 push,给客户端发送通知.我想着,这还是较为简单的 那websocket多个节点有什么问题? 头条面试官的提问让我的回忆飘到了一个下午,想起了我两个同事之间的对话 引子 咱有部分用户收不到通知了 通知是由ws服务控制的,它最近是有啥改动么 也没改啥,以前单个节点也没有…
graphql2chartjs 是hasura graphql-engine 团队开源的方便graphql 转换为chartjs 的类库,我们可以方便的 用来进行ChartJS chart 开发 一张参考图 说明 我们可以集成subscription 可以快速的开发实时的图表,当前官方支持的图表还是比较全的,同时文档也比较全,graphql-engine 很强大 参考资料 https://github.com/hasura/graphql-engine/tree/master/community…
众所周知RESTful API是目前最流行的软件架构风格之一,它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. RESTful的优越性是毋庸置疑的,不过GraphQL也可以作为一种补充,让你的服务既支持RESTful的http调用,也容许客户端通过GraphQL支持的声明式语法调用服务. 本篇文章并不想对比RESTful和GraphQL孰轻孰重,或者那种方式更好,相关比较可以参考GraphQL的前世今生.本文旨在介绍如何在ASP.NET C…