gpt4 book ai didi

graphql - 如何从 GraphQL 模式生成 Kotlin 和/或 Java 数据模型

转载 作者:行者123 更新时间:2023-12-01 12:03:12 25 4
gpt4 key购买 nike

我当前的项目已切换到 GraphQL API,我希望自动生成匹配查询/突变请求/响应的模型对象。

我只需要模型类,我不想在我的应用程序运行时使用 Apollo 等工具。

我要求模型类是 Java 或 Kotlin。

我找到了这个 https://www.graphql-java-kickstart.com/tools/schema-definition/

然而,这似乎需要我自己创建模型类......

基于此声明“GraphQL Java 工具将期望获得映射到 GraphQL 类型的三个类:Query、Book 和 Author。Book 和 Author 的数据类很简单:

我错过了什么?

当我尝试使用 Apollo-cli 下载我的模式时出现此错误

~ -  $ npx apollo-cli download-schema $https://my.graphql.end.point/graphql --output schema.json
Error while fetching introspection query result: only absolute urls are supported

当然这是使用 GraphQL 时的基本要求

最佳答案

因此,如果我对您的理解正确,您尝试做的是 a) 从现有的 graphql 端点下载并在本地创建模式,以及 b) 从该模式创建 java 模型对象。

要下载架构,您可以使用 graphql-cli .首先通过 npm install -g graphql-cli 安装并运行 graphql init 来设置你的 .graphqlconfig。最后运行 graphql get-schema 从定义的端点下载模式。

接下来,您要利用采用 GraphQL 模式并创建的 Java 代码生成器:

  • Interfaces for GraphQL queries, mutations and subscriptions
  • Interfaces for GraphQL unions
  • POJO classes for GraphQL types
  • Enum classes for each GraphQL enum

根据您的设置/偏好,有多种选择(例如 gradle 与 maven):

我建议您查看第一个选项,因为它看起来有很好的文档记录,并且在生成所需的助手后还提供了充分的灵 active :

graphql-java-generator generates the boilerplate code, and lets you concentrate on what’s specific to your use case. Then, the running code doesn’t depend on any dependencies from graphql-java-generator. So you can get rid of graphql-java-generator at any time: just put the generated code in your SCM, and that’s it.

When in client mode, you can query the server with just one line of code.

For instance :

Human human = queryType.human("{id name appearsIn homePlanet
friends{name}}", "180");

In this mode, the plugin generates:

One java class for the Query object, One java class for the Mutation object (if any), One POJO for each standard object of the GraphQL object, All the necessary runtime is actually attached as source code into your project: the generated code is stand-alone. So, your project, when it runs, doesn’t depend on any external dependency from graphql-java-generator.

关于graphql - 如何从 GraphQL 模式生成 Kotlin 和/或 Java 数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60003334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com