Logo

Funkcja:

Funkcje Schematu

Funkcje Schematu

Schema GraphQL jest wyposażona w pola i dyrektywy, które udostępniają funkcjonalności języka programowania PHP.

Pola Funkcji

Pola funkcji są Polami Globalnymi, dlatego są dodawane do każdego typu w schemacie GraphQL: w QueryRoot, ale także w Post, User itd.

Pola funkcji są przydatne do manipulowania danymi po ich pobraniu, umożliwiając przekształcenie wartości pola w dowolny wymagany sposób i zapewniając nam potężne możliwości importu/eksportu danych.

Na przykład, podczas gdy mamy pole Post.hasComments, możemy potrzebować wartości przeciwnej. Zamiast tworzyć nowe pole Post.notHasComments (co wymagałoby edytowania kodu PHP), możemy użyć funkcji Field to Input, aby wprowadzić wartość z hasComments do pola not, obliczając w ten sposób nową wartość bezpośrednio w ramach query GraphQL:

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

Dyrektywy Funkcji

Schema GraphQL jest wyposażona w dyrektywy, które udostępniają funkcjonalności powszechnie spotykane w językach programowania (takich jak PHP).

Pola dyrektyw są przydatne do manipulowania danymi po ich pobraniu, umożliwiając przekształcenie wartości pola w dowolny wymagany sposób i zapewniając nam potężne możliwości importu/eksportu danych.

Na przykład ta query:

query {
  posts {
    title @strUpperCase
  }
}

...wyprodukuje tę odpowiedź:

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

Pola Pomocnicze

Schema GraphQL otrzymuje pola zapewniające powszechnie używane funkcje pomocnicze.

Pola pomocnicze są Polami Globalnymi, dlatego są dodawane do każdego typu w schemacie GraphQL: w QueryRoot, ale także w Post, User itd.

W tej query pobieramy identyfikatory użytkowników witryny i wykonujemy nową query GraphQL, przekazując ich ID jako parametr:

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

Pola Środowiskowe

Schema GraphQL jest wyposażona w globalne pole _env, które umożliwia uzyskanie wartości ze zmiennej środowiskowej lub ze stałej PHP (najczęściej zdefiniowanej w wp-config.php, ale może być zdefiniowana również w innym miejscu).

Ta query pobiera stałą środowiskową GITHUB_ACCESS_TOKEN, którą możemy skonfigurować w celu uzyskania dostępu do prywatnego repozytorium na GitHub:

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

Zapisz się do naszego newslettera

Bądź na bieżąco ze wszystkimi aktualizacjami Gato GraphQL.