本文已参与「新人创作礼」活动,一起开启掘金创作之路。
刚开始学习Hasura及Graphql,对数据库不熟悉,存在不足的地方,欢迎指出,有更好的实现方式也可以交流学习,本文记录自己的实现过程。
创建数据库
首先如下:
简单的创建一个用户信息表
创建数据库表后,就可以开始我们的增删改查了~!
废话不多说,开始我们的接口编写
首先写一个查询列表接口
接口查询规则详情请见GraphiQL
通过query查询列表信息。
query UserTestList($limit: Int, $offset: Int) {
test_user(limit: $limit, offset: $offset) {
id
name
age
phone
}
test_user_aggregate {
aggregate {
count
}
}
}
点击下图中标注的REST按钮去生成接口
进入REST模块
新增接口
通过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按钮去生成接口与上面的查询接口操作流程一直
删除接口
通过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功能让我们下次继续探索吧~!
现在可以开始测试了
下面是用户列表的展示:
好啦~就展示一个接口,其他接口大同小异,请开始你的表演
参考资料
结束语
如有大神有完整的示例或者参考资料,请分享~~~