es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo actualizar un solo dato al utilizar Fauna y GraphQL

Tengo algunos problemas al usar Fauna y GraphQL.

Cuando uso GraphQL para actualizar datos, todos los parámetros son requeridos.

Por ejemplo,


// Esquema type User { username: String! password: String! phone: String! } // Mutación mutation { updateUser(id: "xxxxx", {"phone": "+886 110220330"}){ username, phone } } // Error

Pero esta vez solo quiero actualizar los datos del teléfono, ¿cómo puedo omitir los otros parámetros?

Aunque se puede resolver el problema al eliminar la declaración de “No nulo” de todos los atributos en el tipo “User”,

No parece ser una buena manera ni segura.


// después // Esquema type User { username: String password: String phone: String }
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una solución a este problema es utilizar tipos de entrada en las definiciones de tu esquema. Esto te permite definir una estructura de entrada específica para tus mutaciones, con solo los campos necesarios. Por ejemplo, podrías definir un tipo UpdateUserInput con solo el campo phone:


    input UpdateUserInput { phone: String! } type Mutation { updateUser(id: String!, data: UpdateUserInput!): User }

    De esta manera, cuando llames a la mutación, solo necesitas proporcionar el campo phone:


    mutation { updateUser(id: "xxxxx", data: { phone: "+886 110220330" }) { username, phone } }

    Este enfoque es mucho más seguro y limpio, ya que garantiza que la mutación solo actualice los campos que se proporcionan explícitamente. Además, facilita la validación y saneamiento de los datos de entrada, y ayuda a prevenir errores y problemas de seguridad.

Comments are closed.