Contenido del curso
gRPC
- 6

gRPC: qué lo hace más rápido que REST
08:35 min - 7

JSON vs Protobuf: cuándo usar cada uno
08:56 min - 8

Definir un StudentService con proto buffers en Go
04:27 min - 9

Implementación de Repositorios y gRPC en Go con PostgreSQL
11:59 min - 10

Criando o primeiro servidor gRPC em Go
12:50 min - 11

Prueba tu servidor gRPC con Postman
04:08 min - 12

Definiendo el servicio de test en gRPC
Viendo ahora - 13

Implementando servidor gRPC con PostgreSQL en Go
17:45 min - 14

Client streaming en gRPC con Go
16:53 min - 15

Implementación de Streaming del Servidor con gRPC y Protobufs
16:25 min - 16

Streaming del servidor con gRPC en Go
16:23 min - 17

Streaming bidireccional en gRPC con Go
16:04 min - 18

Prueba de streaming bidireccional con gRPC
04:55 min - 19

Implementando un cliente gRPC en Go
13:10 min - 20

Streaming bidireccional en gRPC con Go
12:16 min
Conclusión
Definiendo el servicio de test en gRPC
Resumen
Crear un servicio de test con gRPC en Go empieza por definir un archivo .proto claro, compilarlo para generar el código y luego conectarlo con la base de datos. Aquí aprenderás a estructurar ese flujo paso a paso siguiendo la misma metodología usada para el servicio de estudiantes, ideal si ya estás construyendo microservicios con Protocol Buffers.
¿Cómo se estructura un archivo proto para un servicio de test?
La metodología arranca creando una carpeta llamada test.pb y, dentro de ella, el archivo test.proto. Este archivo es el contrato que describe qué datos viajan y qué métodos expone el servicio.
Lo primero que defines es la sintaxis con proto3 y el nombre del paquete a nivel de proto, en este caso test. Ese nombre vive solo dentro del mundo de Protocol Buffers, no en Go.
¿Qué diferencia hay entre el package de proto y el go_package?
El package test es la referencia interna del archivo proto. Pero Go necesita su propia ruta de importación, y para eso usas la opción go_package, que en esta clase apunta a platzi.com/go/grpc con el alias testpb.
¿Qué es el go_package en un archivo proto? Es la opción que indica a qué ruta de Go pertenecerá el código generado. Sin esta línea, Go no sabría dónde ubicar los paquetes compilados.
¿Qué mensajes y servicios se definen en el proto de test?
El archivo declara un mensaje base llamado Test con dos campos: un id y un name. Esa es toda la estructura que se necesita para representar un examen dentro del sistema.
Luego se agregan los mensajes auxiliares que viajan en las llamadas RPC:
GetTestRequest, que recibe unstringcon el id del test a consultar.SetTestResponse, que devuelve elidy elnamedespués de crear o actualizar un test.Test, el mensaje principal usado tanto como entrada como salida según el método.
Después viene la parte clave: el bloque service TestService, donde se exponen los métodos RPC del servicio.
¿Qué métodos RPC expone el TestService?
El servicio define dos operaciones que cubren la lectura y la escritura básica:
GetTest, que recibe unGetTestRequesty retorna unTest.SetTest, que recibe unTestcomo parámetro y retorna unSetTestResponse.
Esta simetría con el servicio de estudiantes te ayuda a mantener consistencia entre microservicios. Cada método tiene una entrada y una salida bien tipadas, lo que reduce errores en tiempo de compilación.
¿Para qué sirve el bloque service en un archivo proto? Es donde declaras los métodos RPC que tu servidor gRPC va a exponer. Cada método define qué mensaje recibe y qué mensaje devuelve.
¿Cómo compilar el proto y generar los paquetes de Go?
Una vez guardado el archivo, ejecutas el comando de compilación que ya usaste antes con el servicio de estudiantes. La diferencia es el directorio de ejecución: ahora corres el comando dentro de test.pb en lugar de student.pb.
Al darle enter, se generan dos archivos nuevos de Go dentro de la carpeta. Esos archivos contienen las estructuras, las interfaces del servidor y los clientes listos para usar en tu aplicación.
¿Qué genera el compilador de protoc para gRPC en Go? Genera los tipos de los mensajes y las interfaces del cliente y servidor. Con esos archivos puedes implementar la lógica de negocio sin escribir el boilerplate de comunicación.
¿Qué sigue después de definir el servicio de test?
Con el proto compilado, el siguiente paso es implementar la lógica en tres capas: el servidor que responde a las llamadas, la base de datos que persiste los exámenes, y la interacción gRPC que conecta cliente y servidor.
Este servicio será la base para que los estudiantes tomen distintos exámenes dentro de la plataforma, así que la implementación posterior se enfocará en escribir y leer registros de tests usando los métodos GetTest y SetTest que acabas de declarar.
¿Tu archivo test.proto compiló sin errores a la primera? Cuéntame en los comentarios qué cambios harías a la estructura del mensaje Test para tu propio caso de uso.