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