如何使用 Apollo GraphQL 生成 java 客户端?
How to generate java client using Apollo GraphQL?
我尝试了官方文档中提到的步骤,但它显示错误:不支持的目标:java
在 CLI 帮助中,java 未列为目标
服务器设置
Spring 使用 GraphQL 服务器启动: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),将生成相同的namedjava文件(参考: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;
下载schema.jsonfromthe GraphQL 服务器端点
转到 CLI,运行 下面的命令,它将生成 schema.json
apollo service:download --endpoint=http://localhost:8080/graphql
将schema.json放入main/graphql
运行 Gradle 构建任务,它将在 Build/generated/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
Spring 使用 GraphQL 查询示例启动 |技术入门:https://youtu.be/zX2I7-aIldE
"Building a data API with GraphQL and Spring" - API 新加坡工艺品:https://youtu.be/GmR2uIDZEyM
使用代码优先方法,Java GraphQL 客户端的优雅解决方案是:vertx-graphql-client
我尝试了官方文档中提到的步骤,但它显示错误:不支持的目标:java
在 CLI 帮助中,java 未列为目标
服务器设置
Spring 使用 GraphQL 服务器启动: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),将生成相同的namedjava文件(参考: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;
下载schema.jsonfromthe GraphQL 服务器端点 转到 CLI,运行 下面的命令,它将生成 schema.json
apollo service:download --endpoint=http://localhost:8080/graphql
将schema.json放入main/graphql
运行 Gradle 构建任务,它将在 Build/generated/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
Spring 使用 GraphQL 查询示例启动 |技术入门:https://youtu.be/zX2I7-aIldE
"Building a data API with GraphQL and Spring" - API 新加坡工艺品:https://youtu.be/GmR2uIDZEyM
使用代码优先方法,Java GraphQL 客户端的优雅解决方案是:vertx-graphql-client