Saltar al contenido principal

Configuración inicial

[Traducción Beta No Oficial]

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:

ent/schema/user.go
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.