Configuración inicial
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Empecemos inicializando un nuevo módulo Go para nuestro proyecto:
mkdir ent-grpc-example
cd ent-grpc-example
go mod init ent-grpc-example
A continuación, usamos go run para invocar el generador de código de ent e inicializar un esquema:
go run -mod=mod entgo.io/ent/cmd/ent new User
Nuestro directorio debería verse ahora así:
.
├── ent
│ ├── generate.go
│ └── schema
│ └── user.go
├── go.mod
└── go.sum
Ahora, añadamos el paquete entproto a nuestro proyecto:
go get -u entgo.io/contrib/entproto
A continuación, definiremos el esquema para la entidad User. Abre ent/schema/user.go y edita:
package schema
import (
"entgo.io/ent"
"entgo.io/ent/schema/field"
)
// User holds the schema definition for the User entity.
type User struct {
ent.Schema
}
// Fields of the User.
func (User) Fields() []ent.Field {
return []ent.Field{
field.String("name").
Unique(),
field.String("email_address").
Unique(),
}
}
En este paso, hemos añadido dos campos únicos a nuestra entidad User: name y email_address. El ent.Schema es solo la definición del esquema. Para generar código de producción utilizable a partir de él, necesitamos ejecutar la herramienta de generación de código de Ent. Ejecuta:
go generate ./...
Observa que se han creado nuevos archivos a partir de nuestra definición de esquema:
├── ent
│ ├── client.go
│ ├── config.go
// .... many more
│ ├── user
│ ├── user.go
│ ├── user_create.go
│ ├── user_delete.go
│ ├── user_query.go
│ └── user_update.go
├── go.mod
└── go.sum
En este punto, podemos abrir una conexión a una base de datos, ejecutar una migración para crear la tabla users y empezar a leer y escribir datos en ella. Esto se trata en el Tutorial de Configuración, así que vayamos al grano y aprendamos a generar definiciones de Protobuf y servidores gRPC a partir de nuestro esquema.