Extensión

Schema Functions

Expón funcionalidades del lenguaje de programación PHP mediante campos y directivas de GraphQL.

Logo
Target Image

Click to watch tutorial video - 07:54

El esquema GraphQL incorpora campos y directivas que exponen funcionalidades del lenguaje de programación PHP.

Campos de función

Los campos de función son campos globales, por lo que se añaden a todos los tipos del esquema GraphQL: en QueryRoot, pero también en Post, User, etc.

Los campos de función son útiles para manipular los datos una vez recuperados, permitiéndonos transformar el valor de un campo de la forma que sea necesario, y otorgándonos potentes capacidades de importación/exportación de datos.

Por ejemplo, aunque tenemos el campo Post.hasComments, puede que necesitemos el valor opuesto. En lugar de crear un nuevo campo Post.notHasComments (para el cual tendríamos que editar código PHP), podemos usar la funcionalidad Field to Input para pasar el valor de hasComments a un campo not, calculando así el nuevo valor siempre dentro de la consulta GraphQL:

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

Directivas de función

El esquema GraphQL incorpora directivas que exponen funcionalidades comunes en lenguajes de programación (como PHP).

Las directivas de campo son útiles para manipular los datos una vez recuperados, permitiéndonos transformar el valor de un campo de la forma que sea necesario, y otorgándonos potentes capacidades de importación/exportación de datos.

Por ejemplo, esta consulta:

query {
  posts {
    title @strUpperCase
  }
}

...producirá esta respuesta:

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

Campos auxiliares

El esquema GraphQL añade campos que proporcionan funcionalidad auxiliar de uso común.

Los campos auxiliares son campos globales, por lo que se añaden a todos los tipos del esquema GraphQL: en QueryRoot, pero también en Post, User, etc.

En esta consulta, recuperamos los IDs de los usuarios del sitio web y ejecutamos una nueva consulta GraphQL pasando su ID como parámetro:

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

Campos de entorno

El esquema GraphQL incorpora el campo global _env, que permite obtener el valor de una variable de entorno, o de una constante PHP (más comúnmente definida en wp-config.php, pero que también puede definirse en otro lugar).

Esta consulta recupera la constante de entorno GITHUB_ACCESS_TOKEN que podríamos configurar para acceder a un repositorio privado en GitHub:

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

Envío de correos electrónicos

El esquema GraphQL incorpora la mutación global _sendEmail.

La mutación _sendEmail envía correos electrónicos ejecutando la función wp_mail de WordPress. Como resultado, usará la configuración definida para enviar correos en WordPress (como el proveedor SMTP a utilizar).

El correo puede enviarse con tipos de contenido "text" o "HTML", según el valor de la entrada messageAs (que es un InputObject "oneof", de modo que solo puede proporcionarse una de sus propiedades).

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

Comprar el paquete All-Inclusive

Personal
$79
/año
“All-Inclusive” paquete
Licencia para 1 dominio
Comprar ->
  • 1 dominio
  • Soporte
  • Actualizaciones del producto
Organización
$99
/año
“All-Inclusive” paquete
Licencia para 3 dominios
Comprar ->
  • 3 dominios
  • Soporte
  • Actualizaciones del producto
Profesional
$199
/año
“All-Inclusive” paquete
Licencia para 10 dominios
Comprar ->
  • 10 dominios
  • Soporte
  • Actualizaciones del producto

La licencia es por 1 año (renovable cada año). Los precios están en USD.

¿Necesitas más dominios? Contáctanos

Garantía de devolución de 30 días

Compra cualquier extensión con la tranquilidad de poder solicitar un reembolso

Features illustration
Money back guarantee

Consulta nuestra política de reembolso

Testimonial image

“¡Este plugin es de otro nivel! Lleva tu sitio a una dimensión totalmente nueva y lo convierte en una bestia. Cuanto más exploras lo que puede hacer, más te va a impresionar. Si estás dudando, simplemente cómpralo: si no lo haces, te vas a arrepentir. La documentación habla por sí sola y es de lo más sólida que hay. Leo (el dev) es uno de los desarrolladores más despiertos y agudos con los que me he cruzado. Responde rapidísimo y se nota que sabe muchísimo. La verdad es que estoy entusiasmado con todo lo que puede hacer este plugin. Las posibilidades son prácticamente infinitas, y si te importa el SEO, esto va a ayudar a posicionar tu sitio fortísimo.”

olmate - Desarrollador web

Suscríbete a nuestra newsletter

Mantente al tanto de todas las novedades de Gato GraphQL.