Saltearse al contenido

CasosDeUso e Inyección de dependencias

EinarCLI te permite generar casos de uso empresariales personalizados generando automáticamente los archivos e importaciones necesarios para gestionar tu lógica de negocio. Utiliza OpenTelemetry para asegurar una observabilidad completa, propagando context.Context como el primer argumento para unificar trazas, métricas y logs. Además, einar incluye un mecanismo de inyección de dependencias incorporado para facilitar la integración de varios componentes.

👨‍💻 Generar un Nuevo Caso de Uso

Dentro de tu directorio de proyecto, ejecuta el siguiente comando para crear un nuevo caso de uso personalizado:

Ventana de terminal
einar generate usecase create-customer

Aquí tienes un ejemplo de cómo se verá el código generado:

Ventana de terminal
type CreateCustomer func(ctx context.Context, domain interface{}) (interface{}, error)
func init() {
ioc.Registry(NewCreateCustomer)
}
func NewCreateCustomer() CreateCustomer {
return func(ctx context.Context, input interface{}) (interface{}, error) {
return input, nil
}
}

El archivo create_customer.go se creará en la siguiente estructura de directorios:

/app
/usecase
- create_customer.go

🪡 Inyección de Dependencias con Einar IOC

Aquí tienes cómo integrar el tipo usecase.CreateCustomer como un argumento del constructor y registrar su dependencia asociada con ioc.Registry:

Ventana de terminal
func init() {
ioc.Registry(postCustomer,
serverwrapper.NewEchoWrapper,
usecase.NewCreateCustomer)
}
func postCustomer(
e serverwrapper.EchoWrapper,
createCustomer usecase.CreateCustomer) {
e.POST("/customer", func(c echo.Context) error {
result, _ := createCustomer(c.Request().Context(), "createCustomer dependency injection works")
return c.JSON(http.StatusOK, result)
})
}

🌐 Verifica la Respuesta del Controlador

Ejecuta la siguiente solicitud POST para obtener el resultado de createCustomer desde tu controlador:

Ventana de terminal
curl -X POST http://localhost:8080/customer

ResponseBody:

createCustomer dependency injection works