@remove diretiva

A diretiva de esquema @remove do GraphQL especifica condições para remover tipos e campos da validação ou da introspecção para cada transação com base em valores no contexto da API.

Por exemplo, é possível impedir que Planos específicos usem certos tipos ou campos. Para obter mais informações sobre o contexto da API, consulte Variáveis de contexto do API ConnectAI Gateway.

Nota: A @remove diretiva modifica dinamicamente o esquema de modo que as consultas que não estejam em conformidade com o esquema, após a avaliação de quaisquer @remove diretivas, sejam rejeitadas por uma validate política.
Sintaxe
@remove(if: [String]) on SCALAR | OBJECT | FIELD_DEFINITION | ARGUMENT_DEFINITION | INTERFACE | UNION | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION
Argumentos
Nome do argumento Tipo Descrição
if Lista de Cadeias Condição JSONata que especifica os critérios para remoção de um tipo ou campo por meio de validação ou introspecção.
Limitações e regras de propagação
Para conhecer as limitações e regras de propagação, consulte Limitações e regras de propagação para a diretiva @remove ` GraphQL `.
Exemplo 1
Remova o tipo creditCard se o plano de API atual for bronze.
type creditCard @remove(if: ["plan.name in [\"bronze\"]"])
Exemplo 2
Remova o tipo creditCard se o plano de API atual não for gold e remova o campo card1 se o plano da API for bronze.
type creditCard @remove(if: ["$not(plan.name = \"gold\")"]){
   field1: String
}
type User {
  card1: creditCard @remove(if: ["plan.name = 'bronze'", "$not(plan.name = \gold\")"])
}