zoukankan      html  css  js  c++  java
  • [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.

  • 相关阅读:
    xml读写
    scrollWidth,clientWidth与offsetWidth的区别
    DIV+CSS设计时浏览器兼容性
    访问IIS客户端出现server application error解决方案
    网站局域网内不能访问解决方法之一
    xml学习笔记(一)
    文本编辑器FCKeditor
    业务部门需要IT人员为其提供什么
    程序员与VBA之怪现状
    你的代码完成了吗?(之一)——可用性和易用性
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6869972.html
Copyright © 2011-2022 走看看