[GraphQL] Deploy a GraphQL dev playground with graphql-up

In this lesson we'll use a simple GraphQL IDL schema to deploy and explore a fully functional GraphQL service in minutes with graphql-up.

 

Install:

npm i -g graphql-up -g

 

Create schema:

复制代码
type Person {
    id: ID!,
    name: String!,
    tasks: [Task!]! @relation(name: "PersonTask")
}

type Task {
    id: ID!,
    description: String!
    person: Person @relation(name: "PersonTask")
}
复制代码

 

Run:

graphql-up tasks.schema

 

It will generate two url for use, just grap one. It will open graphcool.

 

We can query the data:

复制代码
{
    allPersons {
    id,
    name,
    tasks {
      id,
      description
    }
  }
}
复制代码

We won't get any, because we haven't create anything.

 

Create some mock data:

复制代码
mutation {
  createPerson(name:"Zhentian") {
    id,
    name
  }
}

// get back
  "data": {
    "createPerson": {
      "id": "cj2t31akybh3g01184klolj0t",
      "name": "Zhentian"
    }
  }
}
复制代码

 

Now if query again:

复制代码
{
  allPersons {
    id,
    name,
    tasks {
      id,
      description
    }
  }
}

// get back

  "data": {
    "allPersons": [
      {
        "id": "cj2t31akybh3g01184klolj0t",
        "name": "Zhentian",
        "tasks": []
      }
    ]
  }
}
复制代码

 

Create data for task:

复制代码
mutation {
  createTask(description: "Learn GraphQL", personId: "cj2t31akybh3g01184klolj0t") {
    id,
    description
  }
}

// get back
  "data": {
    "createTask": {
      "id": "cj2t37fo7kizn0102kf9otzh5",
      "description": "Learn GraphQL"
    }
  }
}
复制代码

 

When we do the query again:

复制代码
{
  allPersons {
    id,
    name,
    tasks {
      id,
      description
    }
  }
}

// get back

  "data": {
    "allPersons": [
      {
        "id": "cj2t31akybh3g01184klolj0t",
        "name": "Zhentian",
        "tasks": [
          {
            "id": "cj2t37fo7kizn0102kf9otzh5",
            "description": "Learn GraphQL"
          }
        ]
      }
    ]
  }
}
复制代码

 

Create Task and Person in same mutation:

复制代码
mutation {
  createPerson(name:"Wan", tasks:[
    {description: "Learn Recompose"},
    {description: "Learn SCSS"}
  ]) {
    id,
    name
  }
}
复制代码

 

After done with playground, can click "Generate code". Select Node env:

Install:

npm install lokka lokka-transport-http --save

Copy the code to index.js file, we should be able to run the code and get data back.

posted @   Zhentiw  阅读(300)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2016-05-17 [CSS3] Using CSS Combinators to Identify Siblings and Descendants in CSS
2016-05-17 [Javascript] Logging Pretty-Printing Tabular Data to the Console
2016-05-17 [Javascrip] Logging Timing Data to the Console
2016-05-17 [PWA] 10. Trigger a version update
2016-05-17 [PWA] 9. Service worker registerion && service work's props, methods and listeners
2015-05-17 [R] Draw a wordcloud
点击右上角即可分享
微信分享提示