hasura graphql server (haskell)构建】的更多相关文章

安装 &&运行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 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…
默认官方是提供了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…
  subscriptions graphql 的一项实时数据推送的功能,还是很方便的,自己在直接使用subscriptions-transport-ws npm 包 的时候运行一直有错误(主要是依赖的apollo版本),还好hasura graphql 默认提供了一个开发模版,还是比较方便的 模版clone git clone https://github.com/hasura/nodejs-graphql-subscriptions-boilerplate.git 基本代码集成 使用模版(g…
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…
不像大部分的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 的安装可以参考相关项目 创建函数 数据表创建 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…
gqlgen golang 的graphql server 具体代码参考https://github.com/rongfengliang/gqlgen-demo 特点 模型优先 类型安全 代码生成 安装 go get -u github.com/vektah/gqlgen 创建schema schema.graphql type Todo { id: ID! text: String! done: Boolean! user: User! } type User { id: ID! name:…
Linux安全应用之防垃圾邮件server的构建 一.垃圾邮件产生的原因 垃圾邮件(SPAM) 也称作UCE(Unsoticited Commercial Email.未经许可的商业电子邮件)或UBE(Unsolicited Bulk Email.未经许可的大量电子邮件). 首次关于垃圾邮l件的记录是1985年8月的一封通过电子邮件发送的连锁信,一直持续到1993年6月出现了名为“Make Money Fast 的电子邮件. 1994年4月SPAM一词首次出现.当时Canter和Siegel律师…
Hasura 使用pg 数据库存储引擎的元数据信息,在hdb_catalog schema 下面,是在初始化的时候生成的 对于表的管理.权限的信息存储都在这个schema下 hdb_table 这个表包含了所有通过web界面或者cli工具管理的表以及视图 列的定义 table_schema: 表或者视图的schmema table_name: 表或者视图的名称 is_system_defined: 标示是否是系统表 参考例子 hdb_relationship 定义表的约束以及手工添加的关系 列的…
graphql-modules 是一个新开源的graphql 工具,是基于apollo server 2.0 的扩展库,该团队 认为开发应该是模块化的. 几张来自官方团队的架构图可以参考,方便比较 apollo server 的开发模型 从上图看出,一般的graphql 简单功能我们都是可以很方便的实现的,但是较复杂的应该就... 来自graphql-modules的实践 说明 模块化,方便扩展,很不错的开源扩展方案,后边会写一些简单的demo,方便学习. 参考资料 https://graphq…
实际上因为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…
实际上通过上边的介绍,模式拼接和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…
GraphQL介绍&使用nestjs构建GraphQL查询服务(文章底部附demo地址) GraphQL一种用为你 API 而生的查询语言.出自于Facebook,GraphQL非常易懂,直接看查询语句就能知道查询出来的数据是什么样的.本质上属于API Layer层,负责前端请求的合并.数据整理等功能. 查询示例 使用几个简单的例子看下GraphQL的查询是什么样子的. 普通查询 { me { name } } 查询出来的数据格式如下: { "me": { "name…
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 前言 这篇文章是这个系列的第一篇,我们会简单地讨论一下GraphQL,然后介绍一下这个系列将会使用的示例项目. 关于GraphQL 关于GraphQL和Restful API的讨论已经有很多了,我在本文里不会试图去推销什么技术.GraphQL的官方主页在这里GraphQL | A query language for your API,它的出现是为了解决Restful API面临的当所需查询的数据结构呈现及其复…
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在本文中,我们通过一个简单的例子来看一下如何实现一个最简单的GraphQL的接口. 实现 引入Hot Chocolate依赖包 由于我打算将GraphQL的相关逻辑放到Applicaiton层,并在Application和Api项目中使用,所以在该项目中引入以下依赖包 # Hot Chocolate在.NET Web应用中使用的主要Nuget包 HotChocolate.AspNetCore # Hot…
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 ★;…
最近项目用到了graphql,学习了一些并在公司做了一个小分享,希望对你有帮助 一.介绍 Graphql是一种面向数据的API查询语言 Graphql给前端提供一种强力的查询工具,我们可以根据自己定义(需要)的格式去拿数据,它有自己的一套类型(schema)系统,schema 是 type.interface.enum 和 union 的集合,用来构建你的 API 数据模型; 类型系统在客户端和服务端之间提供了强类型的条约:我们想要什么,它就会准确给你返回什么,无冗余: 二.对比API 优缺点对…
GraphQL 官方描述: GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具. 优点 GraphQL可以让我们通过请求控制返回的字段,以此来减少restful api的设计理念带来的请求多次的问题. 比如我们要获取指定id的文章相关信息,包括标题.作者.发布时间以及前两…
新的hasura graphql-engine 代码仓库中已经包含了一个基于express 的简单graphql server, 可以用来测试模式拼接 graphql server 代码 项目结构 ├── Dockerfile ├── README.md ├── now.json ├── package.json └── server.js 代码说明 package.json: 依赖包 { "name": "nodejs-express-gql-server", &…
学习本姿势需要电脑装有node,vue-cli相关环境,以及要有node,express,koa,vue相关基础 本文相关demo的github地址: node服务:https://github.com/liuming888/graphql_node_demo.git vue项目:https://github.com/liuming888/graphql_vue_demo.git 一 Graphql概述 它是什么?从哪里来?要干什么? 简单地讲,对于前端,它就是让你舒舒服服发请求的 严格的说,它…
转自: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…
一.关于Apollo Server Apollo Server是一种使用JS创建GraphQL服务端的一个方案.它的兼容性比较好,可以很好地和GraphQL客户端进行兼容.同时它可以 独立作为服务端进行 以插件的形式与现有的NodeJS 服务端程序进行兼容 可以作为一个GraphQL的数据网关. 官网地址:https://www.apollographql.com/docs/apollo-server/ 二.搭建Apollo GraphQL Server 1) 和搭建Node Server类似.…
时间退回到 2012年的一个下午, 美国加利福尼亚州, facebook 的工程师们发现他们才上架没多久的移动端应用就收到了很多差评, 用户反映app响应慢,耗电严重等,经过分析后发现, 应用在第一次启动时, 会请求大量的后端api接口, 这其中包括用户自己的信息, 好友发布的内容, 以及其他的热点信息, 等等.太多的 rest api 请求, 这就是问题所在. facebook 的工程师就开始思考如何才能解决这个问题, 在经过大量的技术讨论之后, 他们想出了一个好方法, 和 rest api…