Spring-boot не создает конечную точку graphql - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу интегрировать 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думаю, что я что-то упустил, но после одного дня попыток я застрял, я не понимаю, в чем может быть моя ошибка.

...