我有一个用于运行graphQL服务器的示例spring-boot应用程序,具有graphiql-java
作为客户端,而pom具有以下依赖关系:
<dependencies>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-spring-boot-autoconfigure</artifactId>
<version>5.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.graphql-java/graphql-java-servlet -->
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java-servlet</artifactId>
<version>6.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>5.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>5.0.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<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>4.3.0</version>
</dependency>
</dependencies>
当我尝试从客户端连接时,出现以下错误:
请稍候提示。
我还有两个问题:
SimpleGraphQLHttpServlet
将请求路由到端点吗?apollo-client
,所以是否强制使用apollo-server
或spring-boot可以工作?在spring-boot方面有任何特定的自定义吗?答案 0 :(得分:0)
- 我应该使用SimpleGraphQLHttpServlet将请求路由到 端点?
只有一个GraphQL端点,因此不需要路由请求。使服务器在URL(通常为/graphQL
)上侦听GraphQL请求所需的内容。这等效于以标准Java方式实现Servlet
侦听此URL。如果您不想自己实现,SimpleGraphQLHttpServlet
是graphql-java-servlet
的Servlet实现之一。如果您使用的是Spring,则为graphql-java-spring
。
- 我在React UI上使用apollo-client,所以它被强制使用 阿波罗服务器或弹簧启动将工作?任何特定的自定义 在弹簧靴侧?
假设您仅使用符合GraphQL规范的GraphQL功能,则apollo-client
应该适用于任何GraphQL服务器。因此,使用apollo-server
,graphql-java
或任何其他语言来实现服务器都没有关系。
- 如果我在spring-boot应用程序中有多个解析器,那么我如何解析对特定解析器的请求?
每种GraphQL类型的每个字段都应配置一个解析器以供其解析其值。每个GraphQL查询都会从根查询/突变/订阅类型的字段开始解析。在graphql-java
中,您可以通过配置TypeRuntimeWiring
或WiringFactory
(有关更多详细信息,请参见this。