2 changed files with 89 additions and 1 deletions
@ -0,0 +1,88 @@ |
|||
# go-zero Development Rules |
|||
|
|||
You are an expert in go-zero microservices framework development. |
|||
|
|||
## Key Principles |
|||
|
|||
Follow these go-zero patterns strictly: |
|||
|
|||
### Architecture |
|||
- **Three-layer separation**: Handler (HTTP) → Logic (business) → Model (data) |
|||
- Never put business logic in handlers |
|||
- Always use ServiceContext for dependency injection |
|||
- Use GORM as ORM for database operations |
|||
|
|||
### Code Generation |
|||
- Use `goctl` for code generation, never hand-write boilerplate |
|||
- API definitions go in `.api` files |
|||
- RPC definitions go in `.proto` files |
|||
|
|||
### Error Handling |
|||
- Use custom `response.Success(w, data)` for success responses |
|||
- Use custom `response.Error(w, err)` for error responses |
|||
- Use `errorx.CodeError` for business errors with error codes |
|||
- Never use `fmt.Fprintf()` or `w.Write()` directly |
|||
|
|||
### Configuration |
|||
- Load config with `conf.MustLoad(&c, *configFile)` |
|||
- Never hard-code ports, hosts, or credentials |
|||
- Use environment-specific config files |
|||
|
|||
### Context Propagation |
|||
- Always pass `ctx context.Context` through all layers |
|||
- Use context for tracing, cancellation, and timeouts |
|||
|
|||
### Database (GORM) |
|||
- Use GORM for all database operations |
|||
- Define models in `internal/model/` directory |
|||
- Initialize DB connection in ServiceContext |
|||
- Use soft delete with `gorm.DeletedAt` field |
|||
|
|||
## Pattern References |
|||
|
|||
When I need detailed patterns, I'll reference these files: |
|||
- REST APIs: .ai-context/zero-skills/references/rest-api-patterns.md |
|||
- RPC services: .ai-context/zero-skills/references/rpc-patterns.md |
|||
- Database: .ai-context/zero-skills/references/database-patterns.md |
|||
- Resilience: .ai-context/zero-skills/references/resilience-patterns.md |
|||
- Troubleshooting: .ai-context/zero-skills/troubleshooting/common-issues.md |
|||
|
|||
## Project Structure |
|||
|
|||
``` |
|||
backend/healthapi/ |
|||
├── healthapi.api # API definitions |
|||
├── healthapi.go # Entry point |
|||
├── internal/ |
|||
│ ├── config/ # Configuration |
|||
│ ├── handler/ # HTTP handlers |
|||
│ ├── logic/ # Business logic |
|||
│ ├── model/ # GORM models |
|||
│ ├── svc/ # ServiceContext |
|||
│ └── types/ # Generated types |
|||
├── pkg/ |
|||
│ ├── errorx/ # Custom errors |
|||
│ └── response/ # Unified response |
|||
└── etc/ |
|||
└── healthapi.yaml # Config file |
|||
``` |
|||
|
|||
## Common Commands |
|||
|
|||
```bash |
|||
# Generate API code |
|||
goctl api go -api healthapi.api -dir . |
|||
|
|||
# Generate model from database (if needed) |
|||
goctl model mysql datasource -url="user:pass@tcp(localhost:3306)/db" -table="users" -dir="./model" |
|||
|
|||
# Run the service |
|||
go run healthapi.go -f etc/healthapi.yaml |
|||
``` |
|||
|
|||
## AI Service Integration |
|||
|
|||
This project integrates with Aliyun Dashscope (Qwen models) for AI chat functionality: |
|||
- AI client initialized in ServiceContext |
|||
- SSE streaming support for real-time responses |
|||
- System prompt includes user health profile data |
|||
@ -1 +1 @@ |
|||
Subproject commit 4045a0873a31f059adf14e7f2752f35befc756fc |
|||
Subproject commit 50050b66cc4db674e781f1b70fd4e5d322f47bb5 |
|||
Loading…
Reference in new issue