# kratos_learn **Repository Path**: fenghoer/kratos_learn ## Basic Information - **Project Name**: kratos_learn - **Description**: 个人学习kratos,项目记录 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-18 - **Last Updated**: 2024-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 模块 1. 目前有一个模块 helloworld ## cmd 下引入了gorm gen 1. 通过在cmd/grom/dal/model 中定义数据表的实体,实现自动生成crud代码。 2. 生成的代码在 cmd/gorm/dal/repository中,此目录下文件不要手动修改!!! 3. cmd/grom/dal/dal.go 文件中,打开DB.AutoMigrate这一行,可实现自动创建表结构 ## 自定义、实现的数据表操作及逻辑层 1. 在internal/repository中实现数据表的操作,在internal/service中实现业务逻辑 # Kratos Project ## Install Kratos ```bash go install github.com/go-kratos/kratos/cmd/kratos/v2@latest ``` ## Create a service ```bash # Create a template project kratos new server cd server # Add a proto template kratos proto add api/server/server.proto # Generate the proto code kratos proto client api/server/server.proto # Generate the source code of service by proto file kratos proto server api/server/server.proto -t internal/service go generate ./... go build -o ./bin/ ./... ./bin/server -conf ./configs ``` ## Generate other auxiliary files by Makefile ```bash # Download and update dependencies make init # Generate API files (include: pb.go, http, grpc, validate, swagger) by proto file make api # Generate all files make all ``` ## Automated Initialization (wire) ```bash # install wire go get github.com/google/wire/cmd/wire # generate wire cd cmd/server wire ``` ## Docker ```bash # build docker build -t . # run docker run --rm -p 8000:8000 -p 9000:9000 -v :/data/conf ```