Así que estos tres están en repositorios separados y se despliegan por separado. Y la primera versión de estos web1, api1 y app1 implementan el tipo de usuario como se ve aquí.
Ahora, la primera etapa de agregar es bastante sencilla. Vamos a agregar los campos de esquema que necesitan ser agregados. En este caso, vamos a agregar el nombre y apellido al tipo de usuario.
La siguiente etapa de depreciar, normalmente la harías junto con agregar. Pero en este caso, vamos a depreciar cualquier campo que querríamos eliminar en el futuro. Aquí hemos añadido la directiva deprecated. Usamos la directiva deprecated para añadir un aviso de depreciación al campo nombre en el tipo de usuario.
Ahora, cuando hayamos terminado con todos nuestros cambios, lanzaremos una nueva versión de la API GraphQL a api2. Ahora, api2 sigue siendo compatible con app1 y web1, lo que significa que este es un cambio compatible con versiones anteriores.
El siguiente paso es la etapa de migración. Ahora, en este paso, tienes que revisar todos los clientes, todo lo que está usando tu API GraphQL, y actualizarlos para usar la nueva API. Luego iremos al sitio web y a la aplicación. Haremos el cambio y publicaremos las nuevas versiones y nos aseguraremos de que todos nuestros usuarios las estén utilizando.
Ahora, cuando estés seguro de que nadie está usando web1 y app1, y hayas publicado web2 y app2, entonces podría ser seguro eliminar el campo. Así que aquí podemos eliminar el campo nombre que fue depreciado del tipo de usuario y cuando hayamos terminado, desplegaremos la nueva versión de la API a api3. Ahora, api3 no es compatible con web1 y app1, todavía recibirían un error, pero si nadie los está usando, ya has publicado el cambio, estarán usando web2 y app2, entonces esa es una eliminación aceptable.
Ahora, como construyo aplicaciones móviles, no sería un desarrollador de aplicaciones móviles si en este punto no me desviara para explicar por qué esto es mucho más difícil en las aplicaciones móviles. A un nivel más alto, esto es lo que parece el despliegue de sitios web y APIs. Has terminado tu versión 1, la vas a subir a donde la lances, digamos AWS, estará disponible para los usuarios, y el 100% de tus usuarios la van a usar.
Ahora, cuando se trata de lanzar la v2, cuando termines de codificarla, la vas a subir a AWS, la vas a hacer disponible e instantáneamente todos tus usuarios van a cambiar y el 100% de tus usuarios estarán usando la v2 y nadie estará usando la v1. Cuando termines la v3, la lanzarás, el 100% de tus usuarios cambiarán inmediatamente.
Ahora, esto parece bastante obvio pero el hecho es que, esto no es en absoluto cómo funciona para las aplicaciones móviles. Esto es lo que parece el despliegue de una aplicación móvil. Cuando hayamos terminado nuestra v1, la vamos a subir a las tiendas, vamos a obtener una aprobación, y cuando tengamos la aprobación podemos publicarla en la app y play store. Y como es la primera versión de nuestra aplicación, el 100% de nuestros usuarios la van a usar.
Luego, cuando estemos listos para la v2, la vamos a lanzar a nuestras tiendas, vamos a obtener la aprobación, la vamos a lanzar a nuestras tiendas. Vamos a, en realidad toma tiempo así que vamos a irnos por dos semanas, vamos a mirar las estadísticas después de dos semanas, y veremos que quizás el 60% de los usuarios la usarán. Y el 40% de los usuarios todavía están usando la v1.
Comments