Ir al contenido principal

Prisma & GraphQL


Buenos días, tardes o noches hoy les vengo a hablar de una herramienta que cualquier programador web debería conocer.

Como ya habéis podido deducir por el titulo hablo de Prisma y GraphQL una de las mejores formas de hoy en día de realizar peticiones a tu BBDD y tratar la información.

¿Qué hay de malo en REST? Nada en su concepción inicial y en el contexto dónde surgió, pero desde que fuera definido la forma de interactuar con las APIs ha cambiado.

En resumen que el tiempo sigue su curso y nada ni nadie vive eternamente, eso es lo que le está pasando a REST, y su predecesor GraphQL es una opción muy a tener en cuanta.

En este blog no vamos a hablar de las  ventajas de una frente a la otra sinos que me voy a centrar en explicar que es Prisma y como aplicarlo en GraphQL.

Vamos a ello:

Si entramos en la página de Prisma podremos ver un botón grande donde nos ofrece la maravillosa posibilidad de empezar con el, haced click en el no os arrepentiréis. Nos dará una pequeña guía para instalarlo es muy sencillo tan solo seguir los pasos y es imposible que os perdáis. Para instalar Prisma en local se requiere de tener un servidor Docker, igualmente en su página oficial os dicen como instalarlo son dos pasos no me seáis perezosos.

Una vez instalado todo nos quedara una carpeta Prisma con tres, vamos a verlos y explicarlos:

Uno de ellos será docker-compose.yml donde definiremos el tipo de BBDD que vayamos  utilizar, MySQL, PostgesSQL o MongoDB, en el cuarto paso ya nos dan el código necesario para tener una configuración básica, en pocas palabrás le estamos indicando que base de datos vamos a usar, en que puerto queremos usar y el usuario y la contraseña que hayamos definido en la BBDD para que el servidor de Prisma pueda acceder, obviamente.

El siguiente que veremos será prisma.yml donde definiremos donde nos va a generar la carpeta con todas las relaciones que nos va a crear Prisma al ejecutar prisma generate

Y el último es datamodel.prisma, donde nosotros definiremos los esquemas de nuestra BBDD con sus elementos y sus relaciones algo tal que así:

type User {
  id: ID! @unique
  name: String!
}

Una vez lo tengamos todo, si realizamos el comando prisma deploy nos creará un todas las posibles combinaciones que puedan existir para manipular la información que hemos definido. Ja sea listar, crear, borrar, o modificas.

Y como relacionamos esto con GraphQL?? Muy simple El servidor que hemos montado con Prisma en un servidor Docker nos ha creado un GraphQL servidor donde nosotros atacaremos, pero primero paso por paso, eso lo veremos en otro blog.

Ahora si entramos en la ruta localhost:4466(el puerto que nos ha establecido por defecto), podremos ver un panel de control de  GraphQL, llamado GraphiQL, es muy simple, a la izquierda es donde nosotros escribiremos nuestras consultas, y al darle al botón del centro veremos los resultados a la derecha. Vamos a hacer nuestra primera Query, tan solo escribid esto en el recuadro de la izquierda.

query users {
  users {
    id
    name
  }
}

Al darle al botón de play veremos que nos devuelve un array vacio, eso es porque aún no tenemos información en nuestra BBDD, para ello debemos ejecutar una Mutation.

mutation createUser($data: userCreateInput!) {
  createUser(data: $data) {
    name
  }
}

Y ahora en la ventana de abajo a la izquierda haced click en query variables y escribid esto.

{
  "data": {
     "name": "Alejandro"
   }
}

Ahora al darle a play veremos que nos ha creado el usuario de nombre Alejandro, así de simple.
Si hacéis click en el botón de la derecha "DOCS" podréis ver una lista de todas las posibles operaciones que podéis realizar con los esquemas que hemos definido.

Eso es todo por hoy, dentro de poco hablaré de temas más complicados, como usar prisma en el el backend de nuestra aplicación moleculer o primero que nada que es moleculer?

Hasta otra!!

Comentarios

Entradas populares de este blog

Habilitando automáticamente HTTPS con Certbot con certificados de Let's Encrypt

En la entrada de hoy vamos a ver como hacer que nuestra página tenga un certificado Let's Encrypt, con tan solo cuatro comandos y así hacer que los usuarios de nuestra web pueden enviar sus datos  de forma segura con el protocolo https. Pero que es Let's Encrypt?? Simplemente es una iniciativa de software libre que ha creado una entidad de certificación gratuita, en pocas palabras, guarda nuestros datos identificativos autentificados por un organismo en un documento oficial de forma gratuita. Antes que nada necesitaremos, tener un VPS, que si no sabes como conseguirlo, aquí te dejo un post anterior donde lo explico. · Que VPS elegir? · Preparar nuestro VPS Una vez tengamos uno deberemos tener un host virtual donde se encuentre nuestra web, si no sabes como no te preocupes os lo dejo por aquí junto al post de como conseguir un nombre de dominio. · Configurar Virtual Host · Conseguir un nombre de dominio Ahora que ya tenemos todo lo necesario vamos a hacer más s...

VPS, que ofrecen y cual elegir

VPS , es un servidor físico, que se encuentra dividido en diferentes servidores virtuales. Esta partición permite a cada VPS trabajar para un cliente como si de una sola máquina se tratase, con su propio disco duro, memoria RAM y velocidad de transmisión, entre otros aspectos. Sin embargo, el servidor real es compartido con otros clientes del resto de VPS alojados en él. Precio RAM Espacio CPU Cores SO HOSTWINDS 8,99$ 1GB 30GB 1CPU Windows/Linux INMOTION HOSTING 27,00$ 4GB 75GB 2CPU Windows/Linux 000 WEBHOST Free -1GB 1GB No Linux OVH 2,99€ 2GB 20GB 1CPU Linux LIQUIDWEB 29,50$ 2GB 40GB 2CPU Linux 1.-HOSTWINDS: · URL: https://www.hostwinds.com/vps/ · CARACTERÍSTICAS : VPS el cual el más barato ofrece por 8,99 dolares al mes 30GB de espacio, 1GB de RAM y 1 CPU C ORE . El más caro asciende a 30, 59 dolares al m...

Presentación a mí blog Alejandro Pla

Un alumno de DAW Hola a todos y bienvenidos a este rincón, donde podréis encontrar respuesta a muchas de las preguntas que tienen que ver con estudiar y mejorar todos aquellos aspectos que tienen que ver con el desarrollo web. Este es el primero de una serie de posts, que hoy empiezo a escribir para este blog y que tienen la intención de hablar sobre los temas y puntos más importantes que me vayan surgiendo como alumno de segundo de DAW. En el Bolg trataré temas tan diversos como puedan ser, la solución de problemas técnicos de nivel básico, medio y avanzado, desde instalar un servidor VPS, hasta saber como nacieron las primeras Bases de datos. Si tenéis cualquier tipo de dudas o preguntas sobre alguno de los temas que van a ir surgiendo en estos posts,  podéis escribirme con toda confianza a mi correo. Trataré de ayudaros en  todo lo que pueda, con la intención inicial de responder a vuestros correos en el menor tiempo posible. Espero que nos sea ...