Hasura+GraphiQL创建数据库及接口初尝试

794 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

刚开始学习Hasura及Graphql,对数据库不熟悉,存在不足的地方,欢迎指出,有更好的实现方式也可以交流学习,本文记录自己的实现过程。

创建数据库

首先如下:

简单的创建一个用户信息表

image.png

创建数据库表后,就可以开始我们的增删改查了~!

废话不多说,开始我们的接口编写

首先写一个查询列表接口

接口查询规则详情请见GraphiQL

通过query查询列表信息。

query UserTestList($limit: Int, $offset: Int) {
  test_user(limit: $limit, offset: $offset) {
    id
    name
    age
    phone
  }
  test_user_aggregate {
    aggregate {
      count
    }
  }
}

点击下图中标注的REST按钮去生成接口

image.png

进入REST模块

image.png

新增接口

通过mutation中的insert_test_user_one新增一条用户信息。

mutation addTestUser($name:String,$age:Int,$phone:String) {
  insert_test_user_one(object:{
    name:$name,
    age:$age,
    phone:$phone,
  }) {
    id,
    name,
    age,
    phone
  }
}

点击下图中标注的REST按钮去生成接口与上面的查询接口操作流程一直

image.png

删除接口

通过mutation中的delete_test_user_by_pk删除一条用户信息

mutation deleteTestUser($id: uuid!) {
  delete_test_user_by_pk(id: $id) {
    id
  }
}

通过mutation中的delete_test_user批量删除用户信息

mutation deleteTestUsers($ids:[uuid!]) {
  delete_test_user(where: {id: {_in: $ids}}) {
    returning {
      id
    }
  }
}

创建接口的流程与上面的流程无异,就不多展述。

修改接口

通过mutation中的update_test_user_by_pk修改用户信息

mutation updataTestUser($id:uuid!,$name:String,$age:Int,$phone:String) {
  update_test_user_by_pk(
    pk_columns: {id:$id},
    _set:{
      name:$name,
      age:$age,
      phone:$phone,
    }
  ){
    id
  }
}

详情接口

通过query查询用户详情

query findeUser($id:uuid) {
  test_user(where:{id:{_eq:$id}}){
    id
    name,
    age
    phone
  }
}

好啦,暂时就写这些接口,当然还有更多的接口操作可以继续写(如批量修改,批量新增等),有用到在写吧~~~~

还有Subscriptions功能让我们下次继续探索吧~!

现在可以开始测试了

下面是用户列表的展示:

image.png image.png image.png image.png image.png

好啦~就展示一个接口,其他接口大同小异,请开始你的表演

参考资料

hasura

结束语

如有大神有完整的示例或者参考资料,请分享~~~