@remove directiva

La directiva de esquema de GraphQL @remove especifica condiciones para eliminar tipos y campos de la validación o introspección para cada transacción basada en valores del contexto de API.

Por ejemplo, puede evitar que planes específicos utilicen determinados tipos o campos. Para obtener más información sobre el contexto de la API, consulte Variables de contexto deAPI Connect.

Nota: La directiva @remove modifica dinámicamente el esquema para que las consultas que no se ajusten al esquema, una vez evaluadas las directivas @remove , sean rechazadas por una política validate .
Sintaxis
@remove(if: [String]) on SCALAR | OBJECT | FIELD_DEFINITION | ARGUMENT_DEFINITION | INTERFACE | UNION | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION
Argumentos
Nombre de argumento Tipo Descripción
if Lista de series Condición de JSONata que especifica los criterios para la eliminación de un tipo o campo de la validación o introspección.
Limitaciones y reglas de propagación
Para ver las limitaciones y las reglas de propagación, consulte Limitaciones y reglas de propagación para la directiva GraphQL @remove.
Ejemplo 1
Eliminar el tipo creditCard si el plan de API actual es bronze.
type creditCard @remove(if: ["plan.name in [\"bronze\"]"])
Ejemplo 2
Eliminar el tipo creditCard si el plan de API actual no es gold, y eliminar el campo card1 si el plan de API es bronze.
type creditCard @remove(if: ["$not(plan.name = \"gold\")"]){
   field1: String
}
type User {
  card1: creditCard @remove(if: ["plan.name = 'bronze'", "$not(plan.name = \gold\")"])
}