abe-framework
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseABE Framework 开发指南
ABE Framework Development Guide
框架概述
Framework Overview
ABE (API Builder Engine) 是一个现代化的 Go 语言 HTTP RESTful API 开发框架,整合了主流开源组件,提供开箱即用的企业级解决方案。
ABE (API Builder Engine) is a modern Go language HTTP RESTful API development framework that integrates mainstream open-source components and provides out-of-the-box enterprise-level solutions.
核心特性
Core Features
- 模块化架构:基于依赖注入实现松耦合设计
- 路由和控制器:标准化的控制器模式和路由注册机制
- 中间件管理:灵活的全局和路由级中间件系统
- 国际化支持:内置多语言 i18n 支持
- 权限控制:集成 Casbin 访问控制
- 事件驱动:基于 Watermill 的异步事件总线
- 协程池管理:高效的并发任务处理
- 插件机制:可扩展的插件系统
- Modular Architecture: Loose-coupling design implemented based on dependency injection
- Routes and Controllers: Standardized controller pattern and route registration mechanism
- Middleware Management: Flexible global and route-level middleware system
- Internationalization Support: Built-in multi-language i18n support
- Access Control: Integrated Casbin access control
- Event-Driven: Asynchronous event bus based on Watermill
- Goroutine Pool Management: Efficient concurrent task processing
- Plugin Mechanism: Extensible plugin system
快速开始
Quick Start
1. 初始化引擎
1. Initialize Engine
go
package main
import "github.com/otzgo/abe"
func main() {
// 创建引擎实例
engine := abe.NewEngine()
// 配置和注册组件
// ...
// 启动服务
engine.Run(abe.WithBasePath("/api/v1"))
}go
package main
import "github.com/otzgo/abe"
func main() {
// 创建引擎实例
engine := abe.NewEngine()
// 配置和注册组件
// ...
// 启动服务
engine.Run(abe.WithBasePath("/api/v1"))
}2. 核心概念
2. Core Concepts
- Engine:应用主容器,协调所有组件
- Controller:业务逻辑控制器,实现标准化接口
- Middleware:HTTP 中间件,处理横切关注点
- UseCase:业务用例模式,封装具体业务逻辑
- Plugin:可插拔扩展模块
- Engine: Main application container that coordinates all components
- Controller: Business logic controller that implements standardized interfaces
- Middleware: HTTP middleware that handles cross-cutting concerns
- UseCase: Business use case pattern that encapsulates specific business logic
- Plugin: Pluggable extension module
开发流程
Development Process
当你需要开发 ABE 应用时,请按以下顺序查阅相关文档:
- 引擎核心功能 - 了解 Engine 实例创建和服务获取
- 控制器开发 - 学习标准化控制器设计和路由注册
- 中间件系统 - 掌握中间件开发和使用技巧
- 依赖注入 - 理解容器管理和依赖注入模式
- 插件机制 - 扩展框架功能的插件开发
When you need to develop an ABE application, please refer to the relevant documents in the following order:
- Engine Core Features - Learn about Engine instance creation and service acquisition
- Controller Development - Master standardized controller design and route registration
- Middleware System - Grasp middleware development and usage skills
- Dependency Injection - Understand container management and dependency injection patterns
- Plugin Mechanism - Develop plugins to extend framework functionality
最佳实践
Best Practices
项目结构建议
Recommended Project Structure
project/
├── cmd/app/ # 应用入口
├── internal/
│ ├── controllers/ # 控制器层
│ ├── usecases/ # 业务用例层
│ ├── dtos/ # 数据传输对象
│ └── models/ # 数据模型
├── configs/ # 配置文件
└── docs/ # 文档project/
├── cmd/app/ # 应用入口
├── internal/
│ ├── controllers/ # 控制器层
│ ├── usecases/ # 业务用例层
│ ├── dtos/ # 数据传输对象
│ └── models/ # 数据模型
├── configs/ # 配置文件
└── docs/ # 文档代码组织原则
Code Organization Principles
- 控制器只负责路由注册和参数处理
- 业务逻辑放在 UseCase 中
- 依赖通过构造函数注入
- 使用标准化的错误处理和响应格式
- Controllers only handle route registration and parameter processing
- Business logic is placed in UseCase
- Dependencies are injected via constructors
- Use standardized error handling and response formats
详细参考资料
Detailed Reference Materials
请查看以下参考文档获取更详细的信息:
Please check the following reference documents for more detailed information:
核心功能
Core Features
- 引擎核心功能详解 - Engine 实例管理、服务获取器、生命周期管理
- 控制器开发指南 - Controller 接口实现、路由注册、RESTful 设计
- 依赖注入容器 - 全局和请求级依赖注入、UseCase 模式
- Engine Core Feature Details - Engine instance management, service accessor, lifecycle management
- Controller Development Guide - Controller interface implementation, route registration, RESTful design
- Dependency Injection Container - Global and request-level dependency injection, UseCase pattern
系统集成
System Integration
- 配置管理系统 - 多层配置、环境变量、命令行参数
- 数据库集成 - GORM 使用、模型定义、查询优化
- 日志系统使用 - 结构化日志、上下文管理、性能监控
- Configuration Management System - Multi-layer configuration, environment variables, command-line parameters
- Database Integration - GORM usage, model definition, query optimization
- Logging System Usage - Structured logging, context management, performance monitoring
功能特性
Functional Features
- 中间件系统使用 - 全局中间件、路由级中间件、自定义中间件开发
- CORS 中间件配置 - 跨域资源共享、安全配置、常见问题
- 表单验证系统 - 数据验证、多语言支持、自定义规则
- 多语言国际化 - 翻译文件、语言切换、模板使用
- Middleware System Usage - Global middleware, route-level middleware, custom middleware development
- CORS Middleware Configuration - Cross-origin resource sharing, security configuration, common issues
- Form Validation System - Data validation, multi-language support, custom rules
- Multi-Language Internationalization - Translation files, language switching, template usage
安全与运维
Security & Operations
- 访问控制机制 - JWT 认证、Casbin 权限、中间件使用
- 事件驱动系统 - 消息发布订阅、异步处理、事件总线
- 定时任务调度 - Cron 表达式、任务管理、监控告警
- 插件机制详解 - 插件接口、生命周期钩子、插件开发示例
- Access Control Mechanism - JWT authentication, Casbin permissions, middleware usage
- Event-Driven System - Message publish/subscribe, asynchronous processing, event bus
- Scheduled Task Scheduling - Cron expressions, task management, monitoring and alerting
- Plugin Mechanism Details - Plugin interfaces, lifecycle hooks, plugin development examples
协程与性能
Goroutines & Performance
- 协程池管理 - 性能优化、资源管理、任务调度
- Goroutine Pool Management - Performance optimization, resource management, task scheduling