Logo

Fitur:

Fungsi Skema

Fungsi Skema

Skema GraphQL dilengkapi dengan field dan direktif yang mengekspos fungsionalitas dari bahasa pemrograman PHP.

Field Fungsi

Field fungsi adalah Field Global, sehingga ditambahkan ke setiap tipe dalam skema GraphQL: di QueryRoot, tetapi juga di Post, User, dan lainnya.

Field fungsi berguna untuk memanipulasi data setelah diambil, memungkinkan kita mentransformasi nilai field sesuai kebutuhan, dan memberikan kemampuan impor/ekspor data yang andal.

Misalnya, meskipun kita memiliki field Post.hasComments, kita mungkin membutuhkan nilai kebalikannya. Alih-alih membuat field baru Post.notHasComments (yang memerlukan pengeditan kode PHP), kita dapat menggunakan fitur Field to Input untuk meneruskan nilai dari hasComments ke field not, sehingga menghitung nilai baru selalu di dalam query GraphQL:

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

Direktif Fungsi

Skema GraphQL dilengkapi dengan direktif yang mengekspos fungsionalitas yang umum ditemukan dalam bahasa pemrograman (seperti PHP).

Direktif field berguna untuk memanipulasi data setelah diambil, memungkinkan kita mentransformasi nilai field sesuai kebutuhan, dan memberikan kemampuan impor/ekspor data yang andal.

Misalnya, query ini:

query {
  posts {
    title @strUpperCase
  }
}

...akan menghasilkan respons ini:

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

Field Pembantu

Skema GraphQL ditambahkan field yang menyediakan fungsionalitas pembantu yang umum digunakan.

Field pembantu adalah Field Global, sehingga ditambahkan ke setiap tipe dalam skema GraphQL: di QueryRoot, tetapi juga di Post, User, dan lainnya.

Dalam query ini, kita mengambil ID pengguna di situs web dan menjalankan query GraphQL baru dengan meneruskan ID mereka sebagai parameter:

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
    }
  }
}

Field Lingkungan

Skema GraphQL dilengkapi dengan field global _env, yang memungkinkan untuk mendapatkan nilai dari variabel lingkungan, atau dari konstanta PHP (yang paling umum didefinisikan di wp-config.php, tetapi juga dapat didefinisikan di tempat lain).

Query ini mengambil konstanta lingkungan GITHUB_ACCESS_TOKEN yang mungkin kita siapkan untuk mengakses repositori privat di GitHub:

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

Berlangganan newsletter kami

Tetap update dengan semua pembaruan Gato GraphQL.