Проблема с пружинной загрузкой graphql.Запрос / graphql результатов с 404 - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь запустить простейший пример graphql.Я создал приложение с весенним инициализатором и добавил только графические зависимости.Мой build.gradle

buildscript {
    ext {
        springBootVersion = '2.1.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web')
    testImplementation('org.springframework.boot:spring-boot-starter-test')

    compile 'com.graphql-java-kickstart:graphql-spring-boot-starter:5.3.1'
    compile 'com.graphql-java-kickstart:graphiql-spring-boot-starter:5.3.1'
    compile 'com.graphql-java-kickstart:voyager-spring-boot-starter:5.3.1'
}

DemoApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Когда я запускаю проект и попадаю в конечную точку /graphql, возвращается 404.Чего не хватает в моей конфигурации?

1 Ответ

0 голосов
/ 06 декабря 2018

Документы (https://github.com/graphql-java-kickstart/graphql-spring-boot#enable-graphql-servlet) говорят:

Сервлет становится доступным в / graphql, если graphql-spring-boot-starter добавлен в качестве зависимости к загрузочному приложению и компоненту GraphQLSchemaприсутствует в приложении.

... и минимальный пример, на который он ссылается, выглядит следующим образом:

@SpringBootApplication
public class ApplicationBootConfiguration {

    public static void main(String[] args) {
        SpringApplication.run(ApplicationBootConfiguration.class, args);
    }

    @Bean
    GraphQLSchema schema() {
        return GraphQLSchema.newSchema()
            .query(GraphQLObjectType.newObject()
                .name("query")
                .field(field -> field
                    .name("test")
                    .type(Scalars.GraphQLString)
                    .dataFetcher(environment -> "response")
                )
                .build())
            .build();
    }
}

Таким образом, вам не хватает схемы Graphql для использования.В нем говорится, что если он есть, конечная точка API будет выставлена ​​автоматически.
Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...