码迷,mamicode.com
首页 > 其他好文 > 详细

QLoo graphql engine 学习一 基本试用(docker&&docker-compose)

时间:2018-08-01 19:35:45      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:sch   into   style   http   ESS   input   tst   spec   message   

说明:使用docker-compose 进行安装

代码框架

使用命令行工具创建

qlooctl install docker qloo-docker

运行qloo&&gloo

  • 启动
cd ./qloo-docker
docker-compose up
  • 效果
    技术分享图片

配置glooctl &&qlooctl工具

  • 下载
https://github.com/solo-io/qloo/releases
https://github.com/solo-io/gloo/releases
  • 配置环境变量

mac

cat ~/.bash_profile
export PATH=$PATH:/Users/dalong/Downloads/qloo

基本demo

  • 启动demo 服务
docker run -d -p 1234:8080 soloio/petstore-example:latest

创建petstore 的gloo upstream

使用使用命令行工具,或者直接编写文件,注意qloo-docker_default 或者根据目录命名修改

  • 使用glooctl
cat << EOF | glooctl upstream create -f -
name: petstore
type: static
spec:
  hosts:
  # gateway ip for the docker network
  - addr: $(docker inspect qloo-docker_default -f ‘{{ (index .IPAM.Config 0).Gateway }}‘)
    port: 1234
EOF
  • 使用配置文件
cat > ./_gloo_config/upstreams/petstore.yaml << EOF 
name: petstore
type: static
spec:
  hosts:
  # gateway ip for the docker network
  - addr: $(docker inspect qloo-docker_default -f ‘{{ (index .IPAM.Config 0).Gateway }}‘)
    port: 1234
EOF

查看petsore 函数

 glooctl upstream get

效果
技术分享图片

创建graphql schema

  • petstore.graphql
# The query type, represents all of the entry points into our object graph
type Query {
    pets: [Pet]
    pet(id: Int!): Pet
}

type Mutation {
    addPet(pet: InputPet!): Pet
}

type Pet{
    id: ID!
    name: String!
    status: Status!
}

input InputPet{
    id: ID!
    name: String!
    tag: String
}

enum Status {
    pending
    available
}
  • 上传schema(qlooctl 工具)
qlooctl schema create petstore -f petstore.graphql
  • 查看注册的resolvermap(实际上就是graphql 的schema &&query && Mutation )
qlooctl resolvermap get petstore-resolvers -o yaml

效果
技术分享图片

注册schema 的resolver

# register findPetById for Query.pets (specifying no arguments)
qlooctl resolvermap register -u petstore -f findPetById Query pets
# register a resolver for Query.pet
qlooctl resolvermap register -u petstore -f findPetById Query pet
# register a resolver for Mutation.addPet
# the request template tells QLoo to use the Variable "pet" as an argument 
qlooctl resolvermap register -u petstore -f addPet Mutation addPet --request-template ‘{{ marshal (index .Args "pet") }}‘

使用playground 查看接口

http://localhost:9090
技术分享图片
技术分享图片

技术分享图片
技术分享图片

参考资料

https://github.com/solo-io/qloo/blob/master/docs/getting_started/docker/1.md
https://qloo.solo.io/

QLoo graphql engine 学习一 基本试用(docker&&docker-compose)

标签:sch   into   style   http   ESS   input   tst   spec   message   

原文地址:https://www.cnblogs.com/rongfengliang/p/9403322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!