Spring Boot整合GraphQL与PostgreSQL配置问题求助
解决方案
一、解决GraphQL端点404错误
1. 确认依赖配置
确保项目包含Spring GraphQL核心依赖和Web支持依赖:
- Maven(pom.xml):
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-graphql</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 你的PostgreSQL、JPA依赖已存在,此处省略 --> </dependencies>
- Gradle(build.gradle):
dependencies { implementation 'org.springframework.boot:spring-boot-starter-graphql' implementation 'org.springframework.boot:spring-boot-starter-web' // 你的PostgreSQL、JPA依赖已存在,此处省略 }
2. 显式配置GraphQL端点
在application.properties中添加(默认路径就是/graphql,显式配置避免歧义):
spring.graphql.path=/graphql
3. 定义至少一个GraphQL查询
Spring GraphQL需要存在可执行的查询定义才能激活端点,示例如下:
- 创建实体类:
@Entity public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String author; // 生成Getters、Setters、构造方法 }
- 创建GraphQL控制器:
@Controller public class BookController { @Autowired private BookRepository bookRepository; @QueryMapping public List<Book> getAllBooks() { return bookRepository.findAll(); } }
- 创建Repository接口:
public interface BookRepository extends JpaRepository<Book, Long> { }
二、启用并访问GraphiQL
1. 开启GraphiQL支持
在application.properties中添加配置:
spring.graphql.graphiql.enabled=true
2. 正确访问GraphiQL
访问地址为:http://localhost:8080/graphiql(你之前遗漏了端口8080)。
三、验证Altair配置
确保Altair中:
- 请求URL设置为
http://localhost:8080/graphql - 请求方法选择
POST(GraphQL默认使用POST方法) - 重启应用后再发送查询请求
内容的提问来源于stack exchange,提问作者Sahan Kodituwakku
相关产品推荐
相关产品推荐

