Pruebas de Streaming Bidireccional con gRPC y Postman

Clase 18 de 22Curso de Go Avanzado: Protobuffers y gRPC

Resumen

¿Cómo probamos el streaming bidireccional entre cliente y servidor?

El streaming bidireccional en gRPC permite una comunicación fluida y continua entre el cliente y el servidor, lo que facilita la implementación de aplicaciones complejas. En el contexto de este tutorial, vamos a profundizar en cómo probar este concepto utilizando herramientas como Postman y una configuración básica en Go para establecer y manejar conexiones efectivas.

¿Cómo configuramos el servidor y probamos la conexión en Postman?

Primero, es esencial levantar el servidor usando el comando:

go run server test main.go

Una vez que el servidor está activo, utilizamos Postman para conectarnos y realizar pruebas de streaming. Recurrimos a gRPC en Postman configurando la conexión al localhost:5070, que es donde nuestro servidor opera. También habilitamos la reflexión del servidor para facilitar la recarga de métricas.

¿Cómo gestionamos las interacciones y datos del test?

Dentro de Postman, se gestionan las interacciones y datos de la prueba con diversas solicitudes. Primero, realizamos un get test con el ID T1 para comprobar que el test existe, pero sin preguntas asociadas al inicio. El siguiente paso es utilizar set questions para añadir preguntas al test. Aquí creamos ejemplos para enviar datos de preguntas utilizando el método de streaming del lado del cliente.

  1. Crear Preguntas:

    • Para cada pregunta, configuramos test ID como T1 y asignamos IDs secuenciales a cada pregunta: A1, A2, A3, etc.
    • Usamos el comando send para enviar las preguntas al servidor.
  2. Enviar Respuestas:

    • Con DateTest, invocamos para recibir la primera pregunta.
    • Respuestas como "42" se envían para cada pregunta.
    • Este proceso continúa hasta que se completa el test con las preguntas insertadas.

Al finalizar, puedes observar en la consola las respuestas enviadas y confirmadas en el servidor, demostrando la comunicación efectiva y bidireccional.

¿Cómo mejoramos la aplicación con almacenamiento de datos?

¿Qué tal si, en vez de solo imprimir las respuestas, las almacenamos en una base de datos? Este es el reto adicional propuesto: almacenar las respuestas para obtener una calificación final de un test específico mediante un nuevo RPC diseñado para tal fin.

Implementar este cambio implica:

  • Estructurar una base de datos para registrar las respuestas.
  • Desarrollar un nuevo método RPC que calcule y proporcione la calificación total del test.

Este tipo de mejoras incrementa el valor de la aplicación, haciéndola más robusta y funcional.

¿Cómo funciona el streaming desde el lado del cliente?

Hasta ahora hemos enfocado la implementación en el servidor, pero es crucial entender cómo Postman arma los requests y efectúa la conexión activa con el servidor desde el lado del cliente.

En resumen, la clave reside en:

  • Configuración adecuada de las rutas y métodos de gRPC para el cliente.
  • Gestión de streams que permita el flujo continuo de datos.
  • Codificación eficaz que facilite la interpretación y procesamiento de datos entre las partes involucradas.

Los insights técnicos obtenidos aquí preparan el camino para construir aplicaciones que puedan manejar flujos de datos complejos y dinámicos, aprovechando el potencial de gRPC para fortalecer la comunicación bidireccional. Es fundamental practicar estas estrategias para adquirir dominio sobre la creación de soluciones avanzadas en la programación de servidores y clientes. ¡Continúa creciendo en esta apasionante área de la tecnología de streaming!