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
}
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 tipoUpdateUserInput
con solo el campophone
:De esta manera, cuando llames a la mutación, solo necesitas proporcionar el campo
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.