当前位置:   article > 正文

SpringBoot整合GraphQL第(二)章节_springboot graphql 发送请求

springboot graphql 发送请求
Postman请求方式

Post请求 JSON格式 传递

{

    "query":"{selectUserById(id:1){id name ecount lout}}"

}

根据id进行查询

 

组合查询

Post请求: http://localhost:9009/graphql

Body raw JSON格式

 

新增方法

Post请求: http://localhost:9009/graphql

Body raw JSON格式

{

    "query":"mutation($user: UserInput!){insert(user:$user){respCode msg}}",

    "variables":{

        "user":{

            "name":"2132132131",

            "ecount":"12321421321",

            "lout":"213214213213"

        }

    }

}

修改方法

Post请求: http://localhost:9009/graphql

Body raw JSON格式

{

    "query":"mutation($user: UserInput!){update(user:$user){respCode msg}}",

    "variables":{

        "user":{

            "id":12,

            "name":"王六",

            "ecount":"王六",

            "lout":"王六"

        }

    }

}

删除方法

Post请求: http://localhost:9009/graphql

Body raw JSON格式

{

    "query":"mutation($id: Int!){delete(id:$id){respCode msg}}",

    "variables":{

        "id":9

    }

}

 

第二种Controller Rest 方法 调用GraphQL方法

创建一个config文件 config文件中创建一个GraphQLProvider配置文件如下图所示:
 

重点是如下的配置项:
 

根据graphql中定义的方法来执行java代码

MyDataFecher是一个接口.要进行查询继承这个接口实现里面的方法比如:

Root.graphqls下有一个selectUserById方法。创建一个类UserGetById的类如下:

FiledName对应的返回的selectUserById对应.graphqls里面的方法名。DataFetcher方法执行里面的业务并返回出来的对象值。一个类对应.graphqls里面的一个方法。

  1. private RuntimeWiring buildWiring() {
  2.         RuntimeWiring wiring = RuntimeWiring.newRuntimeWiring()
  3.                 .type("Query", builder -> {
  4.                             //遍历myDataFetcher的所有实现类
  5.                             for (MyDataFetcher myDataFetcher : myDataFetchers) {
  6.                                 //获取查询的名称 然后找到其对应的类型
  7.                                 builder.dataFetcher(myDataFetcher.fieldName(),
  8.                                         //调用不同的myDataFetcher实现类的dataFetcher方法 返回查询到的数据
  9.                                         environment -> myDataFetcher.dataFetcher(environment));
  10.                             }
  11.                             return builder;
  12.                         }
  13.                 )
  14.                 .build();
  15. //        RuntimeWiring wiring = RuntimeWiring.newRuntimeWiring()
  16. //                .type("Query", builder ->
  17. //                        builder.dataFetcher("selectUserById", environment -> {
  18. //                            User user =  userService.selectUserById(environment.getArgument("id"));
  19. //                            return user;
  20. //                        })
  21. //                )
  22. //                .build();
  23.         return wiring;
  24.     }


Controller层调用

ExecutionInput executionInput = ExecutionInput.newExecutionInput();//构造器

executionInput.query(request.getQuery()); //接收传递过来的查询语句

result.setData(graphQL.execute(executionInput).toSpecification());返回业务中处理过来的数据并接收。

重点:一个接口可解决所有的查询业务场景,根据前端以及PostMan调用controller接口向属性值传递值进行查询比如:组合查询

根据ID进行查询

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/141646
推荐阅读
相关标签
  

闽ICP备14008679号