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.

  • 相关阅读:
    PCB 规则引擎之脚本语言JavaScript应用评测
    PCB 挺有意思的基数排序----C#代码实现
    PCB NOSQL MongoDb MI流程指示数据存储结构
    PCB javascript解析Gerber274X格式实现方法
    PCB javascript解析钻孔(Excellon)格式实现方法
    PCB 围绕CAM自动化,打造PCB规则引擎
    PCB Genesis拼SET画工艺边 实现方法(一)
    约瑟夫环的三种解法
    Microsoft edge真香!
    商城规格参数
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6869972.html
Copyright © 2011-2022 走看看