abe-framework

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

ABE 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 应用时,请按以下顺序查阅相关文档:
  1. 引擎核心功能 - 了解 Engine 实例创建和服务获取
  2. 控制器开发 - 学习标准化控制器设计和路由注册
  3. 中间件系统 - 掌握中间件开发和使用技巧
  4. 依赖注入 - 理解容器管理和依赖注入模式
  5. 插件机制 - 扩展框架功能的插件开发
When you need to develop an ABE application, please refer to the relevant documents in the following order:
  1. Engine Core Features - Learn about Engine instance creation and service acquisition
  2. Controller Development - Master standardized controller design and route registration
  3. Middleware System - Grasp middleware development and usage skills
  4. Dependency Injection - Understand container management and dependency injection patterns
  5. 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