Saltar al contenido

¿Qué es un signo de exclamación en GraphQL?

Te recomendamos que revises esta resolución en un entorno controlado antes de pasarlo a producción, saludos.

Solución:

Eso significa que el campo no admite valores NULL.

Ver más información en Graphql – Esquemas y Tipos

De la especificación:

De forma predeterminada, todos los tipos en GraphQL admiten valores NULL; la null value es una respuesta válida para todos los tipos anteriores. Para declarar un tipo que no permite null, se puede usar el tipo GraphQL Non‐Null. Este tipo envuelve un tipo subyacente, y este tipo actúa de manera idéntica a ese tipo envuelto, con la excepción de que null no es una respuesta válida para el tipo de ajuste. Se usa un signo de exclamación final para indicar un campo que usa un tipo No nulo como este: nombre: ¡Cadena!.

En otras palabras, los tipos en GraphQL son anulables de forma predeterminada. Un signo de exclamación después de un tipo designa específicamente ese tipo como no anulable.

Esto tiene diferentes implicaciones dependiendo de dónde se use el tipo.

Producción

cuando no-null se aplica al tipo de camposignifica que si el servidor resuelve ese campo para null, la respuesta fallará en la validación. Aún puede recibir una respuesta parcial, siempre que el error no se propague hasta la raíz.

Por ejemplo, dado un esquema como:

type Query 
  user: User


type User 
  id: ID!

Aquí el id el campo no esnull. Al marcar el campo como nonullestamos efectivamente garantizando nunca volveremos null para este campo. Si el servidor regresa nullentonces es una indicación de que algo salió terriblemente mal y queremos arrojar un error de validación.

Aporte

cuando no-null se aplica al tipo de aporte, como un argumento, un campo de objeto de entrada o una variable, hace que esa entrada sea obligatoria. Por ejemplo:

type Query 
  getUser(id: ID!, status: Status): User

Aquí el id el argumento no esnull. Si solicitamos la getUser campo, siempre tendremos que proporcionar el id argumento para ello. Por otra parte, porque el status El argumento admite valores NULL, es opcional y se puede omitir. Esto se aplica a las variables también:

query MyQuery ($foo: ID!) 
  getUser(id: $foo)

Porque el $foo la variable no esnullcuando envía la consulta, no se puede omitir y su valor no puede ser igual null.

Una nota especial sobre los tipos de variables

Porque el id el campo no esnull ID (es decir ID!) escriba en nuestro ejemplo, cualquier variable que le pasemos debe además ser un no-null ID. Si nuestro $foo la variable era anulable IDno pudimos pasarlo al id argumento. Sin embargo, lo contrario no es true. Si un argumento es anulable, usted puede pásalo como un no-null variable.

En otras palabras:

+----------+----------+--------+
| Argument | Variable | Valid? |
+----------+----------+--------+
| String   | String   |   ✅   |
| String   | String!  |   ✅   |
| String!  | String   |   ❌   |
| String!  | String!  |   ✅   |
+----------+----------+--------+

Te mostramos reseñas y calificaciones

Si tienes alguna perplejidad o disposición de aclarar nuestro artículo eres capaz de ejecutar una nota y con mucho placer lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *