mutación CreateMovie ($title: String!, $released: Date!) { createMovie (title: $title, released: $released){ ​​id title released } }

[submitted data]

{ “title”: “Seven Samurai” “released”: “1950” } Todas las consultas, incluidas las consultas de mutación, pueden devolver datos. Aquí, la lista de campos entre llaves después de createMovie especifica lo que queremos que se devuelva del servidor después de que se cree un nuevo registro con esta solicitud. El valor del campo id, en este caso, lo crearía la base de datos; los valores de los otros campos se envían en la consulta. Otra cosa que hay que tener en cuenta es que las consultas y los tipos de datos que se utilizan para devolver datos son, por diseño, diferentes de los que se utilizan para solicitar datos. Las consultas de mutación deben validar los datos entrantes, por lo que los tipos que se utilizan para esas consultas están pensados ​​para cumplir esa función. Del mismo modo, los campos que se utilizan en los objetos de consulta devueltos son para visualización, no para validación. Si toma un objeto GraphQL como devuelto por una consulta, es posible que tenga campos con referencias circulares u otros problemas que lo hagan inutilizable como parámetro de consulta. ¿Por qué utilizar GraphQL? Una razón clave para elegir GraphQL en lugar de REST es la naturaleza explícita y declarativa de las consultas GraphQL. Tener una definición formal de cómo deben verse las consultas y los datos devueltos tiene ventajas además de ser coherentes en todas las API e implementaciones.