У меня есть проект многомодульной весенней загрузки (2.1.6.RELEASE), как показано ниже:
modules :
- API ( has only interfaces for rest controllers, which are implemented in Service module)
- Service (has the main spring boot application class, implementation of controllers and other business logic)
- Model (has relevant POJOs)
Вкратце: интерфейс CategoryApi в модуле API имеет все объявления API, а CategoryController в модуле Service реализует его как ниже:
public class CategoryController implements CategoryApi
Мне нужно использовать GraphQL для нового API, для чего я выполнил следующие шаги:
зависимости maven в модуле API pom:
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>5.0.2</version>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>5.2.4</version>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>5.0.2</version>
</dependency>
Схема GraphQl в ресурсах модуля API
type CategoryV2 {
minYear : String,
maxYear : String,
models : [String],
variants : [String]
}
type Query {
yearByMake(make: String): CategoryV2
}
Обработчик запросов GraphQl в модуле API:
@Component
public class GraphQlQuery implements GraphQLQueryResolver {
public CategoryV2 getYearByMake(String make){
return new CategoryV2();
}
}
Я получаю 404 на конечной точке / graphiql , которая должна была открыться автоматически после вышеуказанных шагов. Я пробовал следующие вещи:
- переместил все вышеперечисленные дополнения в служебный модуль.
- Удалена зависимость graphql-spring-boot-starter, как указано здесь https://github.com/graphql-java-kickstart/graphql-java-tools/issues/157
Такая же конфигурация работала для простого проекта весенней загрузки, на который я ссылался по ссылкам ниже:
- https://www.baeldung.com/spring-graphql
- https://dzone.com/articles/a-beginners-guide-to-graphql-with-spring-boot
Любая помощь будет принята с благодарностью !!