⭐️ Uitgebracht v2.4 met ondersteuning voor Application Passwords, compatibiliteit met WordPress multisite en mutaties voor pagina's
Gato GraphQL v2.4 is uitgebracht met verschillende verbeteringen en bugfixes.
Ondersteuning voor Application Passwords
Het is nu mogelijk om WordPress Application Passwords te gebruiken om een geauthenticeerd verzoek naar het GraphQL-eindpunt te sturen.
Je kunt bijvoorbeeld het application password meegeven bij het uitvoeren van het curl-commando tegen de GraphQL-server, waarbij je de waarden USERNAME en PASSWORD vervangt:
curl -i \
--user "USERNAME:PASSWORD" \
-X POST \
-H "Content-Type: application/json" \
-d '{"query": "{ me { name } }"}' \
https://mysite.com/graphqlBij gebruik van Gato GraphQL PRO kunnen we dankzij het nieuw toegevoegde veld _strBase64Encode GraphQL gebruiken om geauthenticeerde HTTP-verzoeken uit te voeren naar een andere WordPress-site.
De onderstaande query ontvangt de gebruikersnaam en het application password (en het eindpunt waarmee verbinding gemaakt moet worden), maakt de vereiste authenticatieheader aan (van het type "Basic base64encoded(username:password)") en stuurt een HTTP-verzoek naar de GraphQL-server met de uit te voeren GraphQL-query:
query GetDataFromExternalWPSite(
$username: String!
$appPassword: String!
$endpoint: URL!
) {
loginCredentials: _sprintf(
string: "%s:%s",
values: [$username, $appPassword]
)
@remove
base64EncodedLoginCredentials: _strBase64Encode(
string: $__loginCredentials
)
@remove
loginCredentialsHeaderValue: _sprintf(
string: "Basic %s",
values: [$__base64EncodedLoginCredentials]
)
@remove
externalHTTPRequestWithUserPassword: _sendGraphQLHTTPRequest(input:{
endpoint: $endpoint,
query: """
{
me {
name
}
}
""",
options: {
headers: [
{
name: "Authorization",
value: $__loginCredentialsHeaderValue
}
]
}
})
}Compatibiliteit met WordPress Multisite
Verschillende problemen zijn opgelost om Gato GraphQL compatibel te maken met een WordPress Multisite-netwerk.
Het is nu mogelijk om een enkele licentie van Gato GraphQL PRO te activeren voor het beheer van de gehele multisite.
Bekijk de demovideo Translating pages on a Multilingual site based on WordPress Multisite, waarin Gato GraphQL helpt bij het vertalen van alle pagina's op een meertalige site gebaseerd op een WordPress Multisite-netwerk:
Paginamutaties toegevoegd aan het GraphQL-schema
De volgende mutaties zijn toegevoegd aan het GraphQL-schema:
Root.createPageRoot.updatePagePage.update
Je kunt nu bijvoorbeeld deze GraphQL-query uitvoeren om een pagina te wijzigen:
mutation UpdatePage {
updatePage(input: {
id: 2
title: "Updated title"
contentAs: { html: "Updated content" },
status: pending
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
page {
id
rawTitle
rawContent
status
}
}
}Velden toegevoegd om pagina's van de ingelogde gebruiker op te halen
v2.4 voegt ook velden toe om pagina's van de ingelogde gebruiker op te halen.
De eerder bestaande velden Root.page, Root.pages en Root.pageCount halen pagina's op voor elke gebruiker, maar alleen de publieke (d.w.z. die met status "publish").
Vanaf deze versie kunnen we publieke of privépagina's van de ingelogde gebruiker ophalen (d.w.z. met status "publish", "pending", "draft" of "trash"), met behulp van deze nieuwe velden:
Root.myPageRoot.myPagesRoot.myPageCount
query {
myPages(filter: { status: [draft, pending] }) {
id
title
status
}
}Velden toegevoegd om de locale en taal van de site op te halen
De volgende velden zijn toegevoegd aan het GraphQL-schema:
Root.siteLocaleRoot.siteLanguage
Het uitvoeren van de volgende query:
{
siteLocale
siteLanguage
}...kan bijvoorbeeld het volgende opleveren:
{
"data": {
"siteLocale": "en_US",
"siteLanguage": "en"
}
}Deze velden worden geleverd via de nieuwe module "Site". Het uitschakelen van deze module verwijdert de velden uit het GraphQL-schema.
Verbeteringen en fixes
- Installatie van "intern" privé custom eindpunt (#2684)
- Documentatie toegevoegd voor het nieuwe PRO-veld
_strBase64Encode(#2673) - Extensies gekoppeld aan de Extensions Reference op gatographql.com (#2675)
- YouTube-kanaallink toegevoegd aan de Over ons-pagina (#2676)
- Voorgedefinieerde opgeslagen queries toegevoegd:
- Extensies uitgelicht en link ingeschakeld om ze op de website te bezoeken (#2674)
- GraphiQL-client (voor LocalWP) gebruikt nu de site-URL als eindpunt (#2686)
- Interne serverfout bij het doorgeven van een string wanneer een integer verwacht werd (v2.4.1)