Poner en marcha un servidor gRPC y validar que cada método funcione correctamente es el paso que convierte todo el código previo en una aplicación real. Aquí se recorre el proceso completo: desde levantar la base de datos con Docker hasta invocar los métodos SetStudent y GetStudent usando Postman con server reflection.
¿Cómo levantar la base de datos con Docker?
Antes de ejecutar el servidor, es necesario construir y correr el contenedor de la base de datos. El flujo es directo:
- Se construye la imagen con un tag descriptivo:
platzi-gRPC-db [0:22].
- Se ejecuta
docker run pasando el flag -p para mapear el puerto 54321 del host al 5432 interno donde corre Postgres dentro del contenedor [0:38].
- Al dar enter, el contenedor levanta la base de datos junto con la tabla creada previamente.
El mapeo de puertos es fundamental: el puerto 5432 es el predeterminado de Postgres, pero al exponerlo como 54321 en el host se evitan conflictos con otras instancias locales. Este valor debe coincidir con el que se especificó en la cadena de conexión del servidor.
¿Cómo ejecutar el servidor gRPC en Go?
Una vez que la base de datos está corriendo, se abre una nueva terminal y se ejecuta:
bash
go run server/student/main.go
Esto levanta el servidor en el puerto 5060 [1:27]. No se necesitan pasos adicionales; el binario queda escuchando peticiones gRPC de inmediato.
¿Por qué es importante el server reflection?
Durante la definición del servidor se agregaron líneas de código para habilitar server reflection [1:43]. Esta capacidad permite que herramientas como Postman descubran automáticamente los servicios y métodos disponibles sin necesidad de importar manualmente el archivo .proto. Al conectarse, Postman detecta los servicios registrados y genera ejemplos de request listos para usar.
¿Cómo probar los métodos gRPC con Postman?
Postman no solo sirve para HTTP o WebSockets. También soporta peticiones gRPC de forma nativa.
¿Cómo invocar SetStudent?
El proceso paso a paso es el siguiente:
- Crear un nuevo request seleccionando gRPC request en lugar de HTTP [1:18].
- Especificar la URL del servidor:
localhost:5060.
- Elegir el método de carga de servicios como server reflection [1:36].
- Seleccionar el método
SetStudent y hacer clic en el ícono que genera un ejemplo de la estructura de datos [1:55].
- Completar los campos: age con valor
20, id con student1 y un nombre de prueba [2:05].
- Hacer clic en el botón de invocación.
El response devuelve únicamente el ID del estudiante insertado, tal como se definió en el proto del servicio [2:18]. Esto confirma que la inserción en la base de datos fue exitosa.
¿Cómo invocar GetStudent?
Para verificar que el dato se almacenó correctamente:
- Seleccionar el método
GetStudent.
- Generar el ejemplo de request y colocar el ID
ST1 [2:33].
- Al invocar, la respuesta contiene el estudiante completo: ID, nombre y edad [2:40].
Esto valida el ciclo completo de escritura y lectura a través de gRPC.
La combinación de Docker para la infraestructura, Go para el servidor y Postman con server reflection crea un flujo de desarrollo ágil donde cada pieza se puede verificar de forma independiente. Si has seguido el proceso y ambos métodos responden correctamente, el siguiente paso natural es definir nuevos servicios para ampliar la funcionalidad de la aplicación. ¿Qué otros métodos te gustaría implementar?