Core Concepts

The Schema Definition Language (SDL)

GraphQL có hệ thống riêng của mình nó được dùng để định nghĩa các schema trong API, cú pháp để viết schema được gọi là Schema Definition Language (SDL)

Ví dụ này sẽ giúp chúng ta cách sử dụng SDL để định nghĩa type Person

type Person {
  name: String!
  age: Int!
}

trong type Person có 2 trường name age được define kiểu dữ liệu tương ứng string Int cú pháp ! biểu diễn trường này là bắt buộc

các type có thể được relationship với nhau bằng cách

type Post {
  title: String!
  author: Person!
}

ngược lại thì Person sẽ được xây dựng như sau

type Person {
  name: String!
  age: Int!
  posts: [Post!]!
}

Note chúng ta chỉ tạo one to many relationship giữa PersonPost

Fetching Data with Queries

Trong GraphQL muốn lấy dữ liệu ta chỉ cần gửi query tới GraphQL server và nó sẽ trả về cho ta dữ liệu cần

Query

{
  allPersons {
    name
  }
}

allPersons field được gọi là field gốc của truy vấn

Kết quả

{
  "data": {
    "allPersons": [
      {
        "name": "Johnny"
      },
      {
        "name": "Sarah"
      },
      {
        "name": "Alice"
      }
    ]
  }
}

Bây giờ ta muốn lấy thêm thông tin về tuổi

{
  allPersons {
    name
    age
  }
}

Kết quả

{
  "data": {
    "allPersons": [
      {
        "name": "Johnny",
        "age": 23
      },
      {
        "name": "Sarah",
        "age": 20
      },
      {
        "name": "Alice",
        "age": 20
      }
    ]
  }
}

Last updated

Was this helpful?