java - 如何将 JSON 格式的数据转换为 GraphQL 查询格式

标签 java json graphql

我有一个 Json 对象,想要将其转换为 graphql 查询,以便在 graphql api 上发布请求。任何人都可以提供任何指向它的指针,因为我无法继续。

JSON object extracted from the POJO:
{
  "customer": {
     "idFromSource": "123", 
     "title": "Mrs", 
     "dateOfBirth": "1980-11-11"
  }
}

graphql query that I need to hit a post request:
{
  "query": "mutation {updateCustomer(customer: 
                    {idFromSource: \"123\", 
                    title: \"Mrs\", 
                    dateOfBirth: \"1980-11-11\"})
                     {idFromSource title dateOfBirth}}"
}

最佳答案

将输入声明为查询中的变量。 Queries should be static 。这意味着您永远不会在客户端上生成 GraphQL 代码。如果你这样做,你可能做错了什么。我不确定您使用的是哪种前端技术,但这是使用 JavaScript fetch 的查询:

let json = // ... parsed JSON

let query = `
  mutation customerMutation($customer: CustomerInput) { # Adjust typename
    updateCustomer(customer: $customer) {
      idFromSource
      title
      dateOfBirth
    }
  }
`;

fetch('/graphql', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  data: JSON.stringify({
    query,
    variables: { customer: json.customer }
  }),
});

诀窍在于,GraphQL API 上有一种类型(我在这里假设它称为 CustomerInput,请在突变中调整它),它与 JSON 对象具有相同的形状。因此,服务器会愉快地接受整个 JSON 对象作为突变中 $customer 变量的值。无需转换!

关于java - 如何将 JSON 格式的数据转换为 GraphQL 查询格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59908872/

相关文章:

javascript - Apollo 客户端 useMutation 数据总是返回 undefined

java - 正则表达式捕获重复内的组

java - 被下面的数据类型搞糊涂了

php - 将查询结果保存在一个数组中

json - 使用 PowerShell 循环确定对象和/或 JSON 值的深度

javascript - JSON.stringify 返回空

ruby-on-rails - 在 Ruby 中重用 GraphQL 参数

graphql - 对于解析器抛出的任何错误,express graphql 始终发送 500 内部服务器错误

C# .NET 远程处理服务器和 Java 客户端

java - 使用 JSON 反序列化器,如何更改父类(super class)字段的映射?