Logo

Tính năng:

Các hàm của Schema

Các hàm của Schema

Schema GraphQL được cung cấp các trường và directive để hiển thị các chức năng từ ngôn ngữ lập trình PHP.

Các trường hàm

Các trường hàm là Trường toàn cục, do đó chúng được thêm vào mọi kiểu trong schema GraphQL: trong QueryRoot, và cả trong Post, User, v.v.

Các trường hàm hữu ích trong việc thao tác dữ liệu sau khi đã được lấy về, cho phép chúng ta chuyển đổi giá trị của một trường theo bất kỳ cách nào cần thiết, và cung cấp cho chúng ta khả năng import/export dữ liệu mạnh mẽ.

Ví dụ, trong khi chúng ta có trường Post.hasComments, chúng ta có thể cần giá trị ngược lại. Thay vì tạo một trường mới Post.notHasComments (mà điều đó đòi hỏi phải chỉnh sửa mã PHP), chúng ta có thể sử dụng tính năng Field to Input để đưa giá trị từ hasComments vào một trường not, từ đó tính toán giá trị mới hoàn toàn trong queries GraphQL:

query {
  posts {
    id
    hasComments
    notHasComments: _not(value: $__hasComments)
  }
}

Các directive hàm

Schema GraphQL được cung cấp các directive hiển thị những chức năng thường thấy trong các ngôn ngữ lập trình (như PHP).

Các trường directive hữu ích trong việc thao tác dữ liệu sau khi đã được lấy về, cho phép chúng ta chuyển đổi giá trị của một trường theo bất kỳ cách nào cần thiết, và cung cấp cho chúng ta khả năng import/export dữ liệu mạnh mẽ.

Ví dụ, queries này:

query {
  posts {
    title @strUpperCase
  }
}

...sẽ tạo ra phản hồi sau:

{
  "data": {
    "posts": [
      {
        "title": "HELLO WORLD!"
      },
      {
        "title": "LOVELY WEATHER"
      }
    ]
  }
}

Các trường trợ giúp

Schema GraphQL được bổ sung các trường cung cấp chức năng trợ giúp thường dùng.

Các trường trợ giúp là Trường toàn cục, do đó chúng được thêm vào mọi kiểu trong schema GraphQL: trong QueryRoot, và cả trong Post, User, v.v.

Trong queries này, chúng ta lấy ID của các người dùng trên trang web và thực thi một queries GraphQL mới truyền ID của họ làm tham số:

query {
  users {
    userID: id
    url: _urlAddParams(
      url: "https://somewebsite/endpoint/user-data",
      params: {
        userID: $__userID
      }
    )
    headers: _httpRequestHeaders
    headerNameValueEntryList: _objectConvertToNameValueEntryList(
      object: $__headers
    )
    _sendHTTPRequest(input: {
      url: $__url
      options: {
        headers: $__headerNameValueEntryList
      }
    }) {
      statusCode
      contentType
      body
    }
  }
}

Các trường môi trường

Schema GraphQL được cung cấp trường toàn cục _env, cho phép lấy giá trị từ một biến môi trường, hoặc từ một hằng số PHP (thường được định nghĩa trong wp-config.php, nhưng cũng có thể được định nghĩa ở nơi khác).

Queries này lấy hằng số môi trường GITHUB_ACCESS_TOKEN mà chúng ta có thể cài đặt để truy cập một repository riêng tư trên GitHub:

query {
  githubAccessToken: _env(name: "GITHUB_ACCESS_TOKEN")
}

Đăng ký nhận bản tin của chúng tôi

Cập nhật tất cả những điều mới từ Gato GraphQL.