如何使用Apollo GraphQL生成Java客户端?

时间:2019-03-05 10:48:21

标签: apollo-client

我尝试了官方文档中提到的步骤,但显示错误:不受支持的目标:java

在CLI帮助中,未将Java列为目标

2 个答案:

答案 0 :(得分:0)

服务器设置

使用GraphQL Server的Spring Boot:https://www.graphql-java.com/tutorials/getting-started-with-spring-boot/

GitHub上存在完整的GraphQL服务器代码:https://github.com/graphql-java/tutorials/tree/master/book-details

客户

从架构生成GraphQL查询代码

  • 使用以下build.gradle创建Java项目
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.apollographql.apollo:apollo-gradle-plugin:0.5.0'
    }
}

plugins {
    id 'java'
}

apply plugin: 'com.apollographql.android'

group = 'com.graphql-java.tutorial'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    jcenter()
}

dependencies {
    compile group: 'com.apollographql.apollo', name: 'apollo-runtime', version: '0.5.0'
}
  • 创建GraphQL查询文件(BookById.graphQL),将生成相同的命名java文件(参考:https://www.apollographql.com/docs/android/essentials/get-started.html#creating-graphql-file
  • 将BookById.graphQL文件放入main.graphql包中,并带有预期的包层次 例如:main / graphql / com / apollographql / apollo / sample / BookById.graphql;
  • 从GraphQL服务器端点下载schema.json 转到CLI,运行以下命令,它将生成schema.json

      

    阿波罗服务:下载--endpoint = http://localhost:8080/graphql

  • schema.json 放入 main / graphql

  • 运行Gradle构建任务,它将在 Build / generate / source / apollo 中生成与 BookById.graphql

    相同的包结构的客户端查询代码。 >

    BookByIdQuery.java

参考:

服务器GraphQL-Java:https://www.graphql-java.com/documentation/master/

Apollo客户端:https://www.apollographql.com/docs/android/essentials/get-started.html

带有GraphQL查询示例的Spring Boot |技术入门:https://youtu.be/zX2I7-aIldE

“使用GraphQL和Spring构建数据API”-新加坡API Craft:https://youtu.be/GmR2uIDZEyM

答案 1 :(得分:0)

采用代码优先方法,一种针对Java GraphQL客户端的优雅解决方案是:vertx-graphql-client