[英]Spring-boot not creating graphql endpoint
我想在我的项目中集成 Graphql。 我在(几个)教程之后从一个新的 Spring 启动项目开始,但它们都没有工作:graphql 端点没有出现,似乎未检测到 graphqls 文件?
我的项目是一个 Maven 项目,具有以下依赖项:
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>5.10.0</version>
</dependency>
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>5.6.1</version>
</dependency>
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>5.10.0</version>
<scope>runtime</scope>
</dependency>
为了保持帖子简短,我尝试只放置相关依赖项,避免其他依赖项(Lombok、jpa 等......)
还有我的 graphqls 文件(在资源文件夹中):
type Vehicle {
id: ID!,
type: String,
modelCode: String,
brandName: String,
launchDate: String
}
type Query {
vehicles(count: Int):[Vehicle]
vehicle(id: ID):Vehicle
}
type Mutation {
createVehicle(type: String!, modelCode: String!, brandName: String, launchDate: String):Vehicle
}
根据文档,应该创建 graphql 端点,因为我有一个 graphql-spring-boot-starter 依赖项和一个模式,它将使用我的 vehicle.graphqls 文件(以及 graphql-java-tools 依赖项)自动创建
如果将 graphql-spring-boot-starter 添加为启动应用程序的依赖项并且应用程序中存在 GraphQLSchema bean,则该 servlet 可以在 /graphql 访问 [...] 当支持的 graphql-在类路径中可以找到 java 模式库。
我使 graphql 端点出现的唯一方法是以编程方式创建模式(我想避免):
@Bean
GraphQLSchema schema() {
return GraphQLSchema.newSchema()
.query(GraphQLObjectType.newObject()
.name("query")
.field(field -> field
.name("test")
.type(Scalars.GraphQLString)
.dataFetcher(environment -> "response")
)
.build())
.build();
}
我想我错过了一些东西,但经过一天的尝试,我现在卡住了,我看不出我的错误是什么。
您是否将GraphQLQueryResolver
公开为@Bean
以便自动配置知道搜索您的模式文件?
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class GraphQLConfiguration {
@Bean
QueryResolver queryResolver() {
return new QueryResolver();
}
@Bean
MutationResolver mutationMutation() {
return new MutationResolver();
}
}
如果将 graphql-spring-boot-starter 作为依赖项添加到启动应用程序并且应用程序中存在 GraphQLSchema bean,则可以在 /graphql 访问 servlet。 查看简单示例,了解所需的最低要求。
当在类路径上找到支持的 graphql-java 模式库时,也可以自动创建 GraphQL 模式。
遵循该文档线程最终将引导您阅读 GraphQL Java 工具项目文档,该文档解释了如何从您的.graphqls
定义中生成必要的GraphQLSchema
object。 Lastly, we have to map those definitions into Java somehow, and this is Spring Boot so @Bean
your root resolver(s) so it has an implementation to work with and you should be good to go.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.