spring 引导启动器 graphql 不工作
spring boot starter graphql not working
我最近开始使用 graphql
并发现它非常有趣。由于我的大多数 rest
应用程序都在 java
中,我决定使用 graphql-java
团队提供的 spring boot starter 项目进行快速设置。它带有 graph-iql
autoconf spring 设置,可以更轻松地查询 /graphql
端点。
在 IDEA 中花了几个小时进行项目设置后,我能够 运行 graphql-sample-app。但我认为我的 servlet 仍未启用,只有 graphiql
端点是 运行ning,因为默认查询返回 404
。
这是application.yml
:
spring:
application:
name: graphql-todo-app
server:
port: 9000
graphql:
spring-graphql-common:
clientMutationIdName: clientMutationId
injectClientMutationId: true
allowEmptyClientMutationId: false
mutationInputArgumentName: input
outputObjectNamePrefix: Payload
inputObjectNamePrefix: Input
schemaMutationObjectName: Mutation
servlet:
mapping: /graphql
enabled: true
corsEnabled: true
graphiql:
mapping: /graphiql
enabled: true
这是我的 build.gradle
文件的样子:
buildscript {
repositories {
maven { url "https://plugins.gradle.org/m2/" }
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE")
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6"
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
repositories {
jcenter()
mavenCentral()
}
dependencies{
// compile(project(":graphql-spring-boot-starter"))
// compile(project(":graphiql-spring-boot-starter"))
compile 'com.graphql-java:graphql-spring-boot-starter:3.6.0'
// to embed GraphiQL tool
compile 'com.graphql-java:graphiql-spring-boot-starter:3.6.0'
compile "com.embedler.moon.graphql:spring-graphql-common:$LIB_SPRING_GRAPHQL_COMMON_VER"
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-actuator")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
jar.enabled = true
uploadArchives.enabled = false
bintrayUpload.enabled = false
在 运行 宁 gradle build
之后,我 运行 从终端生成 jar
文件。这是我在本地主机上得到的:
我在使用 Spring boot 2.0.0 (M6) 时遇到了同样的问题。切换回 1.5.8.RELEASE 解决了问题。他们正在解决这个问题,一旦有 Spring 启动 2.x
的非里程碑版本就会发布
https://github.com/graphql-java/graphql-spring-boot/issues/40
更改为 spring-boot-starter-stop 的 1.5.9.RELEASE 版本,它对我有用
我最近开始使用 graphql
并发现它非常有趣。由于我的大多数 rest
应用程序都在 java
中,我决定使用 graphql-java
团队提供的 spring boot starter 项目进行快速设置。它带有 graph-iql
autoconf spring 设置,可以更轻松地查询 /graphql
端点。
在 IDEA 中花了几个小时进行项目设置后,我能够 运行 graphql-sample-app。但我认为我的 servlet 仍未启用,只有 graphiql
端点是 运行ning,因为默认查询返回 404
。
这是application.yml
:
spring:
application:
name: graphql-todo-app
server:
port: 9000
graphql:
spring-graphql-common:
clientMutationIdName: clientMutationId
injectClientMutationId: true
allowEmptyClientMutationId: false
mutationInputArgumentName: input
outputObjectNamePrefix: Payload
inputObjectNamePrefix: Input
schemaMutationObjectName: Mutation
servlet:
mapping: /graphql
enabled: true
corsEnabled: true
graphiql:
mapping: /graphiql
enabled: true
这是我的 build.gradle
文件的样子:
buildscript {
repositories {
maven { url "https://plugins.gradle.org/m2/" }
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE")
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6"
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
repositories {
jcenter()
mavenCentral()
}
dependencies{
// compile(project(":graphql-spring-boot-starter"))
// compile(project(":graphiql-spring-boot-starter"))
compile 'com.graphql-java:graphql-spring-boot-starter:3.6.0'
// to embed GraphiQL tool
compile 'com.graphql-java:graphiql-spring-boot-starter:3.6.0'
compile "com.embedler.moon.graphql:spring-graphql-common:$LIB_SPRING_GRAPHQL_COMMON_VER"
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-actuator")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
jar.enabled = true
uploadArchives.enabled = false
bintrayUpload.enabled = false
在 运行 宁 gradle build
之后,我 运行 从终端生成 jar
文件。这是我在本地主机上得到的:
我在使用 Spring boot 2.0.0 (M6) 时遇到了同样的问题。切换回 1.5.8.RELEASE 解决了问题。他们正在解决这个问题,一旦有 Spring 启动 2.x
的非里程碑版本就会发布https://github.com/graphql-java/graphql-spring-boot/issues/40
更改为 spring-boot-starter-stop 的 1.5.9.RELEASE 版本,它对我有用