y luego si actualizamos y vamos al esquema, podremos ver que tenemos el campo en lugar de nuestro cliente. Así que si buscamos esa consulta de cliente, ¿dónde se ha ido? Tal vez mientras miramos dentro de todo el esquema, cliente. Así que ahora tenemos el cliente de Stripe y todos estos campos generados obviamente a partir de la API abierta, pero si nos desplazamos hacia abajo ahora, veremos que tenemos Gravatar con esos diferentes argumentos que devuelven una URL. Así que ahora podemos volver y podemos ejecutar esa mutación, esa consulta, lo siento, pero obviamente necesitaremos pasar, obviamente necesitaremos crear ese archivo Gravatar, lo cual haremos en un segundo. Así que ahora podemos hacer esta solicitud, la ejecutamos, no funcionará, será nulo porque no tenemos un archivo allí, pero si volvemos a nuestro código y creamos el archivo aquí llamado Gravatar.ts, y como se ejecuta en el edge, puedes instalar paquetes npm2, pero deben ser compatibles con el edge. Dentro de aquí, no estoy usando ninguna biblioteca
npm, solo estamos usando las cosas integradas de criptografía, eso es algo del edge de
Cloudflare. Está revelando el objeto, eso funciona. Entonces la pregunta es, ¿cómo sabe ese Gravatar, el nuevo campo Gravatar, que se revela a ese objeto? Porque aquí dijimos extender cliente de Stripe y la respuesta de esto es un cliente de Stripe, el nodo real aquí es un cliente de Stripe, así que estamos extendiendo ese nodo con eso, eso es todo lo que es. Entonces el objeto de nodos, puedes ignorarlo, eso es la API, eso es más o menos lo que devuelve la API. El nodo realmente devuelve un cliente de Stripe. Entonces la consulta de cliente, podemos ver aquí que devuelve, ese tipo es un obtener clientes de Stripe, luego ese obtener clientes tiene el nodo dentro de él, pero solo estamos extendiendo el cliente en sí, así que donde se use el tipo cliente de Stripe en la API, esa extensión también se pasará allí. Entonces tal vez podrías obtener un pedido y luego podrías obtener el cliente del pedido, ese campo también aparecería allí, así que es algo reutilizable. Los nodos significan que es una colección del tipo. Sí, los nodos aquí, paso por fases de, ¿me gusta el enfoque de los nodos o no? Lo que encontrarás con otras APIs es que se ve un poco así, donde luego tienes nodos y bordes, y esto sigue la especificación en el mundo de
GraphQL, conocida típicamente como la especificación del cursor de relay. No estoy seguro si la cosa de Stripe, ellos también llaman a esos nodos, no estoy muy familiarizado con eso, pero en la especificación del cursor de
GraphQL, tenemos un nodo y es el tipo, como el borde es eso, y luego en lugar de eso, puedes tener los campos que necesites. Así que preferimos tratar de unificar todas estas APIs para que se vean iguales, así que siempre que podamos, intentamos seguir esa especificación de cursor, pero específicamente para Stripe, no lo recuerdo. Así que ahora tenemos este archivo, solo estamos haciendo lo que necesitamos hacer para codificar el correo electrónico y el primer argumento aquí de ese gravatar. Este valor de correo electrónico es lo que está aquí. Así que en lugar de ese cliente de Stripe, obtenemos del padre, la consulta raíz, que es cliente, obtenemos el correo electrónico. Ahora, un detalle importante aquí es que si no incluimos ese correo electrónico en la consulta, entonces no podemos acceder a él aquí. Queremos hacer eso posible permitiendo a las personas crear una especie de extensión de la consulta con los campos que necesitan, pero si estás integrando esta API, sabrás cómo funciona y sabrás que necesitas pasar el correo electrónico. Con eso hecho, en la parte inferior simplemente devolvemos una cadena, que es una URL compuesta de todos los valores anteriores y luego podemos ejecutar eso. Así que ahora obtenemos este archivo aquí. Si hacemos clic en eso, se abre en un... Se abre Gravatar. Para obtener eso, luego podemos pasar diferentes argumentos. Digamos que queremos aumentar el tamaño a 300. Ejecutamos eso, actualiza la URL. Lo seguimos y obtiene una imagen más grande. Y esa es una imagen mía. Tal vez sea de hace unos 20 años, creo, en este punto. Pero sí. Eso es extender... Creo que eso es bastante poderoso. Hemos conectado una API REST, la hemos transformado a
GraphQL y luego la hemos extendido con nuestro propio código personalizado. Y podemos hacer cualquier cosa dentro de esos resolvedores. Podemos hacer lo que necesitemos hacer. Incluso podemos unir otra API, por ejemplo, para un cliente de Stripe, quiero obtener también todos los tickets de cliente de Stripe dentro de mi plataforma de soporte. O tal vez sean todas sus devoluciones o envíos de mi API de envío o devoluciones. Obviamente, también podrías extender esos nodos para hacer exactamente lo mismo. Así que, sí. Ahora, creo que hay algunas cosas que quiero repasar. Si no tenemos tiempo, no tienes que seguirlo. Pero sí, hay otras dos cosas que quiero mostrar. Voy a actualizar mi archivo de variables de entorno para poder mostrarte estas cosas y hablaré sobre lo que son. Mi archivo de variables de entorno está actualizado. Ahora, lo siguiente que quiero mostrarte es cómo podemos usar un adaptador de base de datos. Hasta ahora, hemos conectado APIs remotas y hemos creado este resolvedor manual de
GraphQL. Pero imagina tener que crear todos los diferentes tipos para esto. Nuestro archivo se volvería bastante grande, sí, porque tendríamos múltiples archivos.
Comments