Extensão

Schema Functions

Exponha funcionalidades da linguagem de programação PHP via campos e diretivas GraphQL.

Logo
Target Image

Click to watch tutorial video - 07:54

O schema GraphQL é provido com campos e diretivas que expõem funcionalidades da linguagem de programação PHP.

Campos de Função

Campos de função são campos globais, portanto são adicionados a cada tipo no schema GraphQL: em QueryRoot, mas também em Post, User, etc.

Campos de função são úteis para manipular os dados após serem recuperados, permitindo transformar o valor de um campo da forma que for necessária, e concedendo poderosas capacidades de importação/exportação de dados.

Por exemplo, embora tenhamos um campo Post.hasComments, podemos precisar do valor oposto. Em vez de criar um novo campo Post.notHasComments (para o qual precisaríamos editar código PHP), podemos usar o recurso Field to Input para passar o valor de hasComments para um campo not, calculando assim o novo valor diretamente dentro da query GraphQL:

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

Diretivas de Função

O schema GraphQL é provido com diretivas que expõem funcionalidades comumente encontradas em linguagens de programação (como PHP).

Campos de diretiva são úteis para manipular os dados após serem recuperados, permitindo transformar o valor de um campo da forma que for necessária, e concedendo poderosas capacidades de importação/exportação de dados.

Por exemplo, esta query:

query {
  posts {
    title @strUpperCase
  }
}

...produzirá esta resposta:

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

Campos Auxiliares

O schema GraphQL recebe campos que fornecem funcionalidades auxiliares de uso comum.

Campos auxiliares são campos globais, portanto são adicionados a cada tipo no schema GraphQL: em QueryRoot, mas também em Post, User, etc.

Nesta query, recuperamos os IDs dos usuários do site e executamos uma nova query GraphQL passando seus IDs 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 Ambiente

O schema GraphQL é provido com o campo global _env, que permite obter um valor de uma variável de ambiente ou de uma constante PHP (mais comumente definida em wp-config.php, mas que também pode ser definida em outro lugar).

Esta query recupera a constante de ambiente GITHUB_ACCESS_TOKEN que podemos configurar para acessar um repositório privado no GitHub:

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

Envio de E-mail

O schema GraphQL é provido com a mutation global _sendEmail.

A mutation _sendEmail envia e-mails executando a função WordPress wp_mail. Como resultado, utilizará a configuração definida para envio de e-mails no WordPress (como o provedor SMTP a ser usado).

O e-mail pode ser enviado com os tipos de conteúdo "text" ou "HTML", dependendo do valor do input messageAs (que é um InputObject "oneof", de modo que apenas uma de suas propriedades pode ser fornecida).

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

Comprar pacote All-Inclusive

Pessoal
$79
/ano
“All-Inclusive” pacote
Licença para 1 domínio
Comprar ->
  • 1 domínio
  • Suporte
  • Atualizações do produto
Organização
$99
/ano
“All-Inclusive” pacote
Licença para 3 domínios
Comprar ->
  • 3 domínios
  • Suporte
  • Atualizações do produto
Profissional
$199
/ano
“All-Inclusive” pacote
Licença para 10 domínios
Comprar ->
  • 10 domínios
  • Suporte
  • Atualizações do produto

A licença é válida por 1 ano (renovável a cada ano). Os preços estão em USD.

Precisa de mais domínios? Fale conosco

Garantia de reembolso de 30 dias

Adquira qualquer extensão com a confiança de que você pode solicitar um reembolso

Testimonial image

“Este plugin é de outro nível! Leva seu site a um patamar completamente novo e o transforma em uma máquina poderosa. Quanto mais você explora o que ele pode fazer, mais impressionado você fica. Se você está em dúvida — é só pegar, você vai se arrepender se não pegar! A documentação fala por si mesma e é sólida como poucas. Leo (o desenvolvedor) é um dos desenvolvedores mais brilhantes e antenados que já conheci. É super responsivo e claramente sabe do que está falando. Estou sinceramente empolgado com tudo que este plugin consegue fazer. As possibilidades são praticamente infinitas e, se SEO é importante para você, essa ferramenta vai ajudar seu site a ranquear forte.”

olmate - Desenvolvedor web

Assine nossa newsletter

Fique por dentro de todas as atualizações do Gato GraphQL.