首页 文章

变异在Apollo-Android上发送空参数

提问于
浏览
0

我正在尝试将Apollo-Android与本地安装的服务器集成,显示所有条目的查询工作正常,但是当我尝试创建新条目时,它会发送不带参数的查询 .

起初我认为这是一个服务器端问题,但它似乎不是这样,因为它创建了条目,但具有空值 .

它是在Spring Boot上使用SPQR生成模式的服务器,而SpringData-JPA是使用Hibernate连接到PostGreSQL数据库 .

这就是服务器所说的:

Hibernate:插入作者(first_name,last_name)值(?,?)2018-06-25 14:48:25.479 INFO 6670 --- [nio-8080-exec-3] s.testing.controllers.GraphQLController:{ data = {createAuthor = {__ typename = Author,firstName = null,lastName = null}}}

这是我在Android Studio上得到的回复:

06-25 14:48:24.974 16068-16132 / com.example.nburk.apollodemo D / graphcool:执行突变:CreateAuthor {__ typename = Author,firstName = null,lastName = null}

在Android Studio中,这是构建器:

private void createPost(String firstname,String lastname){application.apolloClient() . mutate(CreateAuthorMutation.builder() . firstName(firstname).lastName(lastname).build()) . enqueue(createPostMutationCallback); }

这招嘘了这个:

private ApolloCall.Callback <CreateAuthorMutation.Data> createPostMutationCallback = new ApolloCall.Callback <CreateAuthorMutation.Data>(){@ Overver public void onResponse(@Nonnull final Response <CreateAuthorMutation.Data> dataResponse){Log.d(ApolloDemoApplication.TAG, “执行突变:”dataResponse.data() . createAuthor() . toString()); fetchPosts(); } @Override public void onFailure(@Nonnull ApolloException e){Log.d(ApolloDemoApplication.TAG,“Error:”e.toString()); }};

如果你需要它,这是我的变异:

mutation CreateAuthor($ firstName:String,$ lastName:String){createAuthor(firstName:$ firstName,lastName:$ lastName)}

该项目基于此:https://github.com/graphcool-examples/android-graphql/tree/master/quickstart-with-apollo

上传我的架构也是如此 .

Copia de schema.txt

先谢谢你的帮助 .

1 回答

  • 0

    问题来自SPQR,您需要为变量添加映射器

    @PostMapping(value =“/ graphql”,consume = MediaType.APPLICATION_JSON_UTF8_VALUE,produce = MediaType.APPLICATION_JSON_UTF8_VALUE)@ResponseBody public Map <String,Object> indexFromAnnotated(@RequestBody Map <String,Object> request,HttpServletRequest raw){ExecutionResult executionResult = graphQL.execute(ExecutionInput.newExecutionInput() . query((String)request.get(“query”)) . operationName((String)request.get(“operationName”))// --------这解析了变量-------- .variables((Map <String,Object>)request.get(“variables”)) . import(raw).build()); LOGGER.info(executionResult.toSpecification()的toString()); return executionResult.toSpecification(); }

相关问题