GraphQL实战

本文介绍了如何在Spring Boot应用中集成GraphQL,从编写GraphQL文件、注入到Spring容器、编写Service和Controller,到使用Altair GraphQL Client进行测试。针对存在的代码维护问题,提出了通过接口抽象和多实现类的方式进行优化,以便于扩展新的查询业务。
摘要由CSDN通过智能技术生成

1.1.根据需求编写GraphQL文件

在resources目录下新建.graphqls文件

schema {
   
    query: HaokeQuery
}

type HaokeQuery {
   
    HouseResources(id:Long) : HouseResources
    HouseResourcesList(page:Int, pageSize:Int) : TableResult
    IndexAdList:IndexAdResult
}

type HouseResources {
   
    id:Long!
    title:String
    estateId:Long
    buildingNum:String
    buildingUnit:String
    buildingFloorNum:String
    rent:Int
    rentMethod:Int
    paymentMethod:Int
    houseType:String
    coveredArea:String
    useArea:String
    floor:String
    orientation:String
    decoration:Int
    facilities:String
    pic:String
    houseDesc:String
    contact:String
    mobile:String
    time:Int
    propertyCost:String
}

type TableResult{
   
    list:[HouseResources]
    pagination:Pagination
}

type Pagination{
   
    current:Int
    pageSize:Int
    total:Int
}

type IndexAdResult{
   
    list:[IndexAdResultData]
}

type IndexAdResultData{
   
    original:String
}

1.2.将GraphQL对象注入到Spring容器中

package org.fechin.haoke.dubbo.api.graphql;

import graphql.GraphQL;
import graphql.schema.GraphQLSchema;
import graphql.schema.idl.RuntimeWiring;
import graphql.schema.idl.SchemaGenerator;
import graphql.schema.idl.SchemaParser;
import graphql.schema.idl.TypeDefinitionRegistry;
import org.fechin.haoke.dubbo.api.service.HouseResourcesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;

import javax.annotation.PostConstruct;
import java.io.File;
import java.io.FileNotFoundException;

/**
 * @Author:朱国庆
 * @Date:2020/2/13 14:47
 * @Desription: haoke-manage
 * @Version: 1.0
 */
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值