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

Posted Answer1215

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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.

以上是关于[GraphQL] Deploy a GraphQL dev playground with graphql-up的主要内容,如果未能解决你的问题,请参考以下文章

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

Prisma deploy 报错 GraphQL Tutorial

转换为数值失败 - GraphQL

graphql:按嵌套字段排序

GraphQL,使用 GraphiQL 的查询语法不正确

在 GraphQL 对象查询中使用变量