Ekstensi

Schema Functions

Mengekspos fungsionalitas dari bahasa pemrograman PHP melalui field dan directive GraphQL.

Logo
Target Image

Click to watch tutorial video - 07:54

Skema GraphQL dilengkapi dengan field dan directive 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, dll.

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

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

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

Directive Fungsi

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

Field directive berguna untuk memanipulasi data setelah diambil, memungkinkan kita untuk mengubah nilai field sesuai kebutuhan, dan memberikan kemampuan impor/ekspor data yang powerful.

Misalnya, query ini:

query {
  posts {
    title @strUpperCase
  }
}

...akan menghasilkan respons ini:

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

Field Helper

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

Field helper adalah field global, sehingga ditambahkan ke setiap tipe dalam skema GraphQL: di QueryRoot, tetapi juga di Post, User, dll.

Dalam query ini, kita mengambil ID pengguna di website dan mengeksekusi 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 Environment

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

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

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

Pengirim Email

Skema GraphQL dilengkapi dengan mutation global _sendEmail.

Mutation _sendEmail mengirim email dengan mengeksekusi fungsi WordPress wp_mail. Sebagai hasilnya, ini akan menggunakan konfigurasi yang didefinisikan untuk pengiriman email di WordPress (seperti penyedia SMTP yang digunakan).

Email dapat dikirim dengan tipe konten "text" atau "HTML", tergantung pada nilai input messageAs (yang merupakan InputObject "oneof", sehingga hanya satu propertinya yang dapat disediakan).

mutation {
  _sendEmail(
    input: {
      to: "target@email.com"
      subject: "Email with text content"
      messageAs: {
        text: "Hello world!"
      }
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
  }
}

Beli bundel All-Inclusive

Personal
$79
/tahun
“All-Inclusive” bundel
Lisensi untuk 1 domain
Beli ->
  • 1 domain
  • Dukungan
  • Pembaruan produk
Organisasi
$99
/tahun
“All-Inclusive” bundel
Lisensi untuk 3 domain
Beli ->
  • 3 domain
  • Dukungan
  • Pembaruan produk
Profesional
$199
/tahun
“All-Inclusive” bundel
Lisensi untuk 10 domain
Beli ->
  • 10 domain
  • Dukungan
  • Pembaruan produk

Lisensi untuk 1 tahun (dapat diperbarui setiap tahun). Harga dalam USD.

Butuh lebih banyak domain? Hubungi kami

Jaminan uang kembali 30 hari

Beli ekstensi apa pun dengan keyakinan bahwa Anda dapat meminta pengembalian dana

Testimonial image

“Plugin ini benar-benar luar biasa! Membawa situs Anda ke level yang sepenuhnya baru dan mengubahnya menjadi mesin yang powerful. Semakin banyak Anda menjelajahi kemampuannya, semakin Anda akan terkesan. Kalau masih ragu—langsung ambil saja, Anda akan menyesal kalau tidak! Dokumentasinya berbicara sendiri dan sangat solid. Leo (sang developer) adalah salah satu developer paling cerdas dan paling sigap yang pernah saya temui. Dia sangat responsif dan jelas tahu apa yang dia lakukan. Saya benar-benar kagum dengan begitu banyak hal yang bisa dilakukan plugin ini. Kemungkinannya hampir tak terbatas, dan jika SEO penting bagi Anda, plugin ini akan membantu situs Anda meraih peringkat tinggi.”

olmate - Pengembang web

Berlangganan newsletter kami

Tetap update dengan semua pembaruan Gato GraphQL.