springBoot+graphql+graphiql 基础工程搭建

springBoot+graphql+graphiql 基础工程搭建

项目构建
工程目录
springBoot+graphql+graphiql 基础工程搭建
添加依赖:

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.2 </version>
</dependency>
<dependency>
	<groupId>com.graphql-java-kickstart</groupId>
	<artifactId>graphql-spring-boot-starter</artifactId>
	<version>5.0.4</version>
</dependency>

<dependency>
	<groupId>com.graphql-java-kickstart</groupId>
	<artifactId>graphiql-spring-boot-starter</artifactId>
	<version>5.0.4</version>
</dependency>

配置yml文件:

graphql:
  servlet:
    mapping: /graphql
    enabled: true
    corsEnabled: true
  tools:
    schemaLocationPattern: "**/*.graphqls"
graphiql:
  mapping: /graphiql
  endpoint:
    graphql: /graphql
    subscriptions: /subscriptions
  static:
    basePath: /
  enabled: true
  pageTitle: GraphiQL
  cdn:
    enabled: false
    version: 0.11.11
  props:
    resources:
      query: testquery.query
      defaultQuery: testquery.query
    variables:
      editorTheme: "solarized light"
  headers:
    Authorization: "Bearer vdff3344ffs v"

配置GraphQL 服务
root.graphqls 服务入口文件 Query是查询入口
具体信息查看官方文档 graphql官方文档http://graphql.cn/learn/

type Query{
    users: [User]
    user: User
}

定义user类型字段
user.graphqls

type User{
    id: Int
    name: String
}

实体类

package com.example.graphQL.demo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;

}

实现描述

package com.example.graphQL.demo;

import com.coxautodev.graphql.tools.GraphQLQueryResolver;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
@AllArgsConstructor
public class Query implements GraphQLQueryResolver {
    public User getUser(){
        return new User(1,"张三");
    }
    public List<User> getUsers(){
        List<User> users = new ArrayList<>();
        users.add(new User(1,"张三"));
        users.add(new User(2,"李四"));
        users.add(new User(3,"王五"));
        return users;
    }
}

运行程序
启动程序 打开 localhost:8080/graphiql
springBoot+graphql+graphiql 基础工程搭建