当前位置: 首页 > 知识库问答 >
问题:

Quarkus SmallRye Graphql客户端突变查询

庾奇思
2023-03-14

我尝试执行Graphql客户端查询。遗憾的是,我找不到任何关于如何使用动态图QL客户端进行简单变异的文档或示例。这是文件https://quarkus.io/guides/smallrye-graphql-client.

mutation mut {
  add(p: {
    amount: {0},
    fromCurrencyId: {1},
    reference: {2},
    terminalKey: {3},
    toCurrencyId: {4}
  }) {
    address
    toCurrencyAmount
    rate
    createdAt
    expireAt
  }
}

{0}..{4} 是可变占位符。有人知道如何使用DynamicGraphlQlClient执行这个查询吗?

谢谢

共有1个答案

阮俊弼
2023-03-14

按照Eclipse微文件API声明了服务器端变异,如下所示:

@GraphQLApi
@ApplicationScoped
public class MyGraphQLApi {

    @Mutation
    public OutputType add(@Name("p") InputType p)) {
        // perform your mutation and return result
    }

}

然后,您可以声明性地使用DynamicGraphQLClient来执行突变,使用DynamicGraphQLClient#ExectteSync方法和在您的突变结构之后构造的io.smallrye.graphql.client.core.Document

@Inject
private DynamicGraphQLClient client;

public void add() {
    Document document = document(
            operation(
                OperationType.MUTATION,
                "mut",
                field(
                    "add",
                    arg(
                        "p",
                        inputObject(
                            prop("amount", "amountValue"),
                            prop("fromCurrencyId", "fromCurrencyIdValue"),
                            prop("reference", "referenceValue"),
                            prop("terminalKey", "terminalKeyValue"),
                            prop("toCurrencyId", "toCurrencyIdValue"),
                        )
                    ),
                    field("address"),
                    field("toCurrencyAmount"),
                    field("rate"),
                    field("createdAt"),
                    field("expireAt")
                )
            )
        );

    JsonObject data = client.executeSync(document).getData();
    System.out.println(data.getString("address"));
}
 类似资料:
  • 我在服务器上使用GraphQL和mongoose。 当发生验证错误时,GraphQL突变发送状态代码为200的响应。在客户端,响应如下所示: 我想使用阿波罗客户端突变promise的功能访问验证错误。类似: 如何做到这一点?

  • 我有以下代码,我正在尝试决定如何处理错误: 服务器发回一个GraphQL错误对象,并将其发回,使其出现在突变的块中。如果变异成功,组件的数据将使用参数更新,但我看不到处理错误的等价方法。 理想情况下,我希望更新块中的Apollo缓存,但在这一点上,我甚至不能向组件或状态注入道具。 最终的结果是在Register组件上设置一个prop/state,它显示了一个带有条件呈现的错误消息组件。一种方法可以

  • 在后端,我进行了调试,并收到了请求,它根据客户机上设置的令牌查找用户,但随后什么也不做,只在我试图从应用程序发送时返回给我400,在graphiql浏览器上。 我错过了什么?非常感谢。

  • 我在web服务器上使用apollo客户端与graphql服务器(也是apollo)通信。我有一个成功的查询,可以正常工作和检索数据,但当我尝试变异时,我会收到新的Apollo错误消息。复制/粘贴到graphiql中的相同突变非常有效。 我已经检查了graphql服务器上的CORS,它已启用并正常运行。我已经将代码中的变体复制并粘贴到graphiql编辑器中,它按预期工作。 有人能为我解释一下吗,或

  • 问题内容: 我在状态中存储了一堆信息,我需要使用变异将其传递到我的graphQL服务器,但是在调用下一个变异之前,我需要使用每个变异的结果,因为我需要: 在数据库中创建一个新对象 使用为该对象生成的ID创建另一个对象 修改原始对象以存储第二个对象生成的ID 我注意到apollo Mutation组件具有onCompleted回调,但是我不知道如何使用此回调来触发另一个突变,或者这是否是解决我的问题

  • 最近开始使用graphQL和Apollo-Apollo客户端。 我在graph QL之上构建了一个Web服务,它运行得很好。我面临的唯一问题是项目的客户端。例如(请参阅下面的代码),在运行createVideo()后,我的组件的属性是可观察的,它正在观察查询不会自动刷新,并且在回调上手动调用apollo.query似乎没有任何效果,因为查询返回缓存的结果,而不是来自服务器的结果。 我错过什么了吗?