El servidor GraphQL SDL first te permite escribir tu esquema por separado de tus resolvers, dándote control total. Sin embargo, este enfoque requiere escribir tanto resolvers como esquemas, lo cual puede llevar tiempo. Como alternativa, puedes crear automáticamente una API GraphQL a partir de un esquema utilizando el paso 10. Esto simplifica el proceso al generar resolvers en la nube y conectarse a diversas fuentes de datos, como bases de datos, APIs REST u otras APIs GraphQL. La API GraphQL sin servidor resultante maneja la escalabilidad y el rendimiento, eliminando la necesidad de implementaciones manuales.
Literalmente, no hay separación de preocupaciones, porque tu esquema se crea a partir de resolvers, y los resolvers son el único código que tienes. Por lo tanto, no tienes control sobre cómo se verá el esquema en última instancia. Para solucionar esto, existe el servidor SDL first GraphQL, también conocido como servidor schema first GraphQL.
La idea aquí es que escribas tu esquema, ya sea en SDL de GraphQL, de ahí el servidor SDL first, o puedes hacerlo con algunas bibliotecas externas. Existe la biblioteca GraphQL JS, que te permite escribir servidores schema first GraphQL, pero no utilizando SDL, sino sus propios métodos. Pero la idea es simple, creas tu esquema, creas tus resolvers basados en este esquema y esto creará un servidor para ti. Así que tienes una separación de preocupaciones muy buena, tienes tus esquemas separados de tus resolvers y tienes control total sobre todo. Pero esto, por supuesto, tiene las principales desventajas y escribir tanto resolvers como esquemas es mucho trabajo.
Afortunadamente, hay una solución. También puedes crear automáticamente tu API GraphQL a partir de un esquema. Y esto se puede hacer con el paso 10, como ejemplo. Veamos cómo funciona. Crear una API de gráficos con el paso 10 es muy sencillo. Simplemente escribes tu esquema. Puedes definir todos los tipos que tienes. Y estos tipos estarán vinculados a una fuente de datos de la que provienen. Y esto puede ser cualquier backend, como veremos más adelante. Y nuestra CLI generará automáticamente resolvers en el servidor para ti, directamente en la nube. Así que se implementará sin servidor, no tienes que preocuparte por ninguna implementación o por la escalabilidad de tus resolvers. Puedes conectar cualquier fuente de datos. Pueden ser bases de datos, ya sea SQL o Postgres. Pueden ser APIs REST, pueden ser APIs GraphQL, puedes conectar literalmente cualquier otra fuente de datos. Y luego, en función de esta fuente de datos, se creará una API GraphQL completamente sin servidor y de alto rendimiento para ti. Ya no tenemos que preocuparnos por la escalabilidad, el rendimiento o las implementaciones, todo se hará por ti. Y esto utiliza solo el lenguaje de diseño de esquemas de GraphQL. Aquí tienes dos ejemplos para MySQL Postgres a la izquierda y REST a la derecha. Como puedes ver, se utilizan directivas personalizadas para vincularse a la fuente de datos. Así que desde tu esquema, utilizando solo el lenguaje de diseño de esquemas de GraphQL, puedes crear conexiones con cualquier backend o cualquier fuente de datos. Además de Postgres y REST, también puedes usar cualquier otra API GraphQL como fuente de datos, como veremos en este ejemplo. Lo que tenemos aquí es un esquema.
Comments