Edycja Queries Persistowanych na Niskim Poziomie
Sprawia, że normalnie ukryte dyrektywy (które wstrzykują funkcjonalność do serwera GraphQL) stają się widoczne podczas edycji queries persistowanej.
Opis
W GraphQL dyrektywy to funkcje umożliwiające modyfikowanie wyniku pola. Na przykład dyrektywa @strUpperCase przekształca wartość pola na format wielkich liter.
Istnieją 2 rodzaje dyrektyw: te, które są stosowane do schematu i wykonywane zawsze, przy każdej queries; oraz te, które są stosowane do queries przez użytkownika lub aplikację po stronie klienta.
W Gato GraphQL duża część funkcjonalności związanej z rozwiązywaniem queries jest wykonywana za pomocą dyrektyw stosowanych do schematu.
Na przykład Cache Control działa poprzez zastosowanie dyrektywy @cacheControl do schematu. Ta konfiguracja jest domyślnie ukryta i zarządzana przez wtyczkę za pośrednictwem interfejsu użytkownika:

Podobnie te dyrektywy zapewniają kontrolę dostępu do pól (a podobne dyrektywy zapewniają kontrolę dostępu do dyrektyw):
@disableAccess@validateIsUserLoggedIn@validateIsUserNotLoggedIn@validateDoesLoggedInUserHaveAnyRole.@validateDoesLoggedInUserHaveAnyCapability@validateDoesVisitorComeFromAnyAllowedIP@validateDoesVisitorNotComeFromAnyDeniedIP
To rozszerzenie Low-Level Persisted Query Editing sprawia, że wszystkie dyrektywy stosowane do schematu są dostępne w edytorze GraphiQL podczas edycji queries persistowanych, umożliwiając pominięcie interfejsu użytkownika i dodanie dyrektyw typu schematu bezpośrednio w queries persistowanej.

Na przykład definiowanie Cache Control można wykonać bezpośrednio w queries persistowanej, ustawiając dyrektywę @cacheControl z argumentem maxAge na polu; lub kontrolę dostępu można zdefiniować bezpośrednio, dodając odpowiednią dyrektywę @validate... bezpośrednio na polu:
