我尝试使用Hasura [初学者]

使用REST与数据库进行交互时似乎是最新的做法,但现在有一种叫做GraphQL的东西更加时尚。
REST是一种思维方式,通过区分端点使其更易于直观理解,但在需要使用多个表格的数据时却不太方便。需要先获取数据,然后再进行一次GET请求…
另一方面,如果使用GraphQL,则可以将端点统一为一个,同时可以像处理JSON一样轻松地获取多个表格的数据。

我尝试使用一个名为Hasura的API服务器,它可以自动将GraphQL和SQL转换。

公式文件

https://hasura.io/docs/1.0/graphql/core/index.html 的内容请以中文为母语进行描述。

安装

从零开始的方法有以下两种。

    • Harura Cloud

 

    Docker

这次我们将给出一个使用Docker的例子。

在新的目录下运行以下命令之一来获取docker-compose文件。

wget https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-compose/docker-compose.yaml

# or
curl https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-compose/docker-compose.yaml -o docker-compose.yml

以下是docker-compose的内容。

version: '3.6'
services:
  postgres:
    image: postgres:12
    restart: always
    volumes:
    - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgrespassword
  graphql-engine:
    image: hasura/graphql-engine:v1.3.1
    ports:
    - "8080:8080"
    depends_on:
    - "postgres"
    restart: always
    environment:
      HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
      ## enable the console served by server
      HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
      ## enable debugging mode. It is recommended to disable this in production
      HASURA_GRAPHQL_DEV_MODE: "true"
      HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
      ## uncomment next line to set an admin secret
      # HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
volumes:
  db_data:

2. 启动

如果没有特别需要更改的话,就直接启动。

docker-compose up -d

3. 检查 Hasura 控制台

如果成功启动,应该会在http://localhost:8080/console上显示以下画面。

スクリーンショット 2020-09-07 15.23.55.png

输入数据并发出查询

1. 制作桌子

我們馬上要開始製作表格。
為了真正體驗到GraphQL的強大,這次我們將製作主表格以及該表格的子表格。(如果使用REST,需要從主表格中取得資料並進一步進行GET,但GraphQL可以一次完成,這就是它的厲害之處)

    1. 点击顶部的DATA选项卡

 

    1. 点击Create Table按钮

 

    1. 输入列

 

    子表也一样

2. 设置表之间的关系。

    1. 点击Data选项卡

 

    1. 选择子表

点击Modify选项卡

在外键中进行设置
选择父表

点击Relationships选项卡

在表关系中的Array relationships中应该反映了刚刚在子表中添加的设置,因此点击Add按钮
输入在查询中使用的参数名

3. 发送查询

让我们在GRAPHIQL选项卡的页面上执行最后的查询,以确认是否可以获取数据。

广告
将在 10 秒后关闭
bannerAds