Spring Boot中集成GraphQL查询

发布时间:2024-11-15 14:22:02 作者:小樊
来源:亿速云 阅读:78

在Spring Boot中集成GraphQL查询,你需要遵循以下步骤:

  1. 添加依赖

在你的pom.xml文件中添加以下依赖:

<dependency>
    <groupId>com.graphql-java-kickstart</groupId>
    <artifactId>graphql-spring-boot-starter</artifactId>
    <version>11.1.0</version>
</dependency>
<dependency>
    <groupId>com.graphql-java-kickstart</groupId>
    <artifactId>graphiql-spring-boot-starter</artifactId>
    <version>11.1.0</version>
</dependency>
  1. 创建GraphQL Schema

创建一个GraphQL schema文件,例如schema.graphqls,并将其放在src/main/resources/graphql目录下。在这个文件中定义你的类型、查询和突变:

type Query {
    hello: String
}
  1. 配置GraphQL

创建一个配置类,例如GraphQLConfig.java,并继承GraphQLSpringBootConfiguration类。在这个类中,你需要配置GraphQL的Schema文件路径:

import com.coxautodev.graphql.tools.SchemaParser;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.graphql.execution.GraphQLQueryResolver;
import org.springframework.graphql.execution.GraphQLMutationResolver;
import org.springframework.graphql.schema.GraphQLSchema;
import org.springframework.graphql.schema.idl.RuntimeWiring;
import org.springframework.graphql.schema.idl.SchemaGenerator;
import org.springframework.graphql.schema.idl.TypeRuntimeWiring;

@Configuration
public class GraphQLConfig {

    @Bean
    public GraphQLSchema graphQLSchema() {
        SchemaParser schemaParser = new SchemaParser();
        schemaParser.setResourceDirectory(new ClassPathResource("graphql"));
        return schemaParser.parse();
    }

    @Bean
    public RuntimeWiring runtimeWiring() {
        return RuntimeWiring.newRuntimeWiring()
                .type(TypeRuntimeWiring.newTypeWiring("Query")
                        .dataFetcher("hello", new GraphQLQueryResolver() {
                            @Override
                            public String hello() {
                                return "Hello, GraphQL!";
                            }
                        }))
                .build();
    }
}
  1. 创建GraphQL Controller

创建一个控制器,例如GraphQLController.java,并添加一个POST请求映射,以便客户端可以通过HTTP POST请求执行GraphQL查询:

import org.springframework.graphql.execution.GraphQLQueryResolver;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GraphQLController implements GraphQLQueryResolver {

    @PostMapping("/graphql")
    public String graphQL(@RequestBody String query) {
        return query;
    }
}

现在,你已经成功地在Spring Boot中集成了GraphQL查询。你可以通过发送一个包含GraphQL查询的POST请求到/graphql端点来测试它。例如,使用curl发送请求:

curl -X POST -H "Content-Type: application/json" -d '{"query": "{ hello }"}' http://localhost:8080/graphql

响应应该是:

{
  "data": {
    "hello": "Hello, GraphQL!"
  }
}
推荐阅读:
  1. SpringBoot开发中集成Graphql Query是怎样的
  2. Netflix中用于Spring Boot 的GraphQL框架DGS是怎样的

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring boot

上一篇:Spring Boot中Spring Batch批处理

下一篇:Spring Boot与Apache Camel集成

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》