Después de esta sección, nos enfocaremos completamente en el cliente
React porque el servidor estará completo. El objetivo de esto, como dije antes, es configurar un servidor que exponga nuestros
data en un conjunto de datos que configuramos en la lección anterior. Por lo tanto, en la tarea uno, podemos construir este tipo de nota. Tenemos nuestra nota definida en nuestro esquema de
Prisma. Esto define cómo se verá en nuestra base de datos. Pero ahora necesitamos definir cómo queremos que se vea una nota a través de nuestra API de
GraphQL. Estas son cosas muy diferentes. Es posible que no desee exponer todo desde su base de datos a través de su API de
GraphQL. Por eso debemos hacerlo por separado aquí. Para hacer eso, vamos a usar nuestra instancia de constructor y vamos a definir un tipo de nota y vamos a organizar esto de una manera que sea mantenible si la aplicación crece en el futuro. Lo primero que voy a hacer es crear una nueva carpeta llamada Models en nuestra carpeta de origen. Aquí vamos a escribir cualquier tipo y modelo de esquema de
GraphQL. El primero que vamos a hacer se llamará Note.ts y esto simplemente va a definir nuestro modelo de nota. Para construir nuestra nota, debemos importar nuestra instancia de constructor. Entonces, en la parte superior, voy a importar el Constructor desde ./Builder. Esto nos proporciona un conjunto de funciones que podemos usar para construir nuestro esquema de
GraphQL. Lo primero que vamos a hacer aquí es hacer Constructor. Y obtenemos este conjunto de funciones, pero como estamos usando el complemento de
Prisma, obtenemos esta función de objeto
Prisma. Entonces, esto es lo que vamos a usar para crear un objeto basado en uno de nuestros modelos de
Prisma. Y obtenemos una buena
type safety aquí. Y esto se debe a ese complemento de
Prisma que configuramos. Pothos ahora sabe que dentro de nuestro esquema de
Prisma, solo tenemos un modelo de nota y un modelo de usuario. Entonces, podemos seleccionar este modelo de nota aquí. Y luego proporcionamos un objeto de configuración. Y esto será cómo definimos los campos que queremos exponer a través de nuestra API y cómo manejar algunas de estas funcionalidades de búsqueda. Y lo primero que vamos a necesitar agregar aquí es Find Unique. Y lo que hace esto es simplemente una convención que vamos a hacer en Pothos. Y define cómo, si tenemos que hacer una lectura anidada en
GraphQL, nos encontramos con el problema de N más uno, donde podríamos tener una serie de consultas anidadas que terminan construyendo una consulta gigante que arruina nuestra base de datos. Esto es algo que ayuda con ese rendimiento. Ayuda con el rendimiento en torno a eso. Esto es algo que el creador de Pothos me ha sugerido que haga. Y también está documentado en su documentación, a la que he enlazado aquí. Entonces, si tienes curiosidad acerca de por qué está aquí, siéntete libre de echarle un vistazo. Pero por ahora, solo sabemos que tenemos que agregar esta definición de Find Unique allí. Pero la parte que realmente necesitamos agregar aquí mismo son nuestros campos. Entonces, los campos serán una función que toma T como argumento. Tendrá un argumento, pero lo he llamado T. Eso también es una convención que usa Pothos. Y vamos a exponer algunos campos diferentes. Vamos a exponer el ID, el mensaje, el creado en y el actualizado en. Así que solo queremos que estos campos estén disponibles a través de nuestra API. Y para exponer realmente esos campos, podemos usar estas funciones de argumentos T. Entonces, tenemos T.expose, y esto será un ID, y puedes pasar este ID. Y como ves aquí, obtenemos esta buena
type safety una vez más basada en nuestro esquema de
prisma porque estamos usando ese complemento de Pathos. Entonces sabe qué campos tenemos disponibles. Así que haré exponer ID y diré que queremos exponer el campo ID de nuestra base de datos y luego T.expose string. Así que haré exponer string y luego enumerará todos nuestros campos de cadena que podemos usar, y solo tenemos uno, que es un mensaje. Y luego podemos hacer nuestro creado en. Entonces, una vez más, T.expose, y esto solo se expondrá porque este es nuestro tipo de fecha personalizado. Entonces, esto no tiene una función incorporada. Entonces, lo que vamos a hacer aquí en su lugar es hacer exponer y esto será el creado en, y tendremos que pasarle este objeto de configuración. Entonces, el tipo aquí será fecha, y eso es todo. Así es como le decimos que use nuestro tipo de fecha personalizado. Y luego haremos lo mismo para el actualizado en. Solo tenemos que actualizar este nombre aquí, así que actualizado en. Ahí vamos, genial. Esto ahora define nuestro modelo de nota, cómo queremos exponerlo a través de nuestra API de
GraphQL. Y esto resultará en un tipo de nota en nuestro esquema de
GraphQL. Lo veremos en un momento, pero por ahora esto es todo lo que necesitamos hacer en nuestro tipo de nota. Pasemos a la siguiente sección aquí. Voy a ver las preguntas rápidamente. Veo que Corinne tiene una. Cambié a la parte tres, pero aún tengo este error.
Comments