Я хочу интегрировать 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, если graphql-spring-boot-starter добавлен какзависимость от загрузочного приложения и компонента GraphQLSchema присутствует в приложении [...] Схема 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();
}
Iдумаю, что я что-то упустил, но после одного дня попыток я застрял, я не понимаю, в чем может быть моя ошибка.