Documentation
¶
Index ¶
- type APISpec
- type BaseGenerator
- type CodeFormatter
- type CodeGenerationManager
- func (m *CodeGenerationManager) CreateProjectStructure(options *GenerateOptions) error
- func (m *CodeGenerationManager) Generate(ctx context.Context, spec *APISpec, options *GenerateOptions) error
- func (m *CodeGenerationManager) GenerateConfig(spec *APISpec, options *GenerateOptions) error
- func (m *CodeGenerationManager) GenerateFromOpenAPI(ctx context.Context, openAPIFile string, options *GenerateOptions) error
- func (m *CodeGenerationManager) GenerateFromProtobuf(ctx context.Context, protoFiles []string, options *GenerateOptions) error
- func (m *CodeGenerationManager) GetGenerator(name string) (CodeGenerator, bool)
- func (m *CodeGenerationManager) ListGenerators() []CodeGenerator
- func (m *CodeGenerationManager) RegisterGenerator(generator CodeGenerator)
- func (m *CodeGenerationManager) SetVerbose(verbose bool)
- type CodeGenerator
- type Endpoint
- type Field
- type FileGenerator
- type GenerateOptions
- type GeneratorRegistry
- type GoAPIGenerator
- func (g *GoAPIGenerator) GenerateAPI(ctx context.Context, spec *APISpec, options *GenerateOptions) error
- func (g *GoAPIGenerator) GenerateClient(ctx context.Context, spec *APISpec, options *GenerateOptions) error
- func (g *GoAPIGenerator) GenerateDocs(ctx context.Context, spec *APISpec, options *GenerateOptions) error
- func (g *GoAPIGenerator) GenerateMiddleware(ctx context.Context, spec *APISpec, options *GenerateOptions) error
- func (g *GoAPIGenerator) GenerateService(ctx context.Context, spec *APISpec, options *GenerateOptions) error
- func (g *GoAPIGenerator) GenerateTests(ctx context.Context, spec *APISpec, options *GenerateOptions) error
- type GoCodeFormatter
- type GoFileGenerator
- func (g *GoFileGenerator) GenerateDirectory(ctx context.Context, spec *APISpec, options *GenerateOptions, dirPath string) error
- func (g *GoFileGenerator) GenerateFile(ctx context.Context, spec *APISpec, options *GenerateOptions, filePath string) error
- func (g *GoFileGenerator) GetTemplatePath(templateName string) string
- type GoTemplateEngine
- func (e *GoTemplateEngine) LoadTemplates(templateDir string) error
- func (e *GoTemplateEngine) Render(templateName string, data interface{}, output io.Writer) error
- func (e *GoTemplateEngine) RenderFile(templatePath string, data interface{}, outputPath string) error
- func (e *GoTemplateEngine) RenderString(templateStr string, data interface{}) (string, error)
- type Middleware
- type Model
- type Service
- type SpecValidator
- type TemplateEngine
- type Validation
- type Validator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APISpec ¶
type APISpec struct {
Name string `json:"name"`
Version string `json:"version"`
Description string `json:"description"`
Endpoints []Endpoint `json:"endpoints"`
Models []Model `json:"models"`
Middleware []Middleware `json:"middleware"`
Services []Service `json:"services"`
Metadata map[string]interface{} `json:"metadata"`
}
APISpec API规范
type BaseGenerator ¶
type BaseGenerator struct {
// contains filtered or unexported fields
}
BaseGenerator 基础生成器
func NewBaseGenerator ¶
func NewBaseGenerator(name string, supportedFormats []string) *BaseGenerator
NewBaseGenerator 创建基础生成器
func (*BaseGenerator) GetSupportedFormats ¶
func (g *BaseGenerator) GetSupportedFormats() []string
GetSupportedFormats 获取支持的格式
func (*BaseGenerator) SetFileGenerator ¶
func (g *BaseGenerator) SetFileGenerator(fg FileGenerator)
SetFileGenerator 设置文件生成器
func (*BaseGenerator) SetFormatter ¶
func (g *BaseGenerator) SetFormatter(formatter CodeFormatter)
SetFormatter 设置格式化器
func (*BaseGenerator) SetTemplateEngine ¶
func (g *BaseGenerator) SetTemplateEngine(engine TemplateEngine)
SetTemplateEngine 设置模板引擎
type CodeFormatter ¶
type CodeFormatter interface {
// Format 格式化代码
Format(code string, language string) (string, error)
// FormatFile 格式化文件
FormatFile(filePath string, language string) error
}
CodeFormatter 代码格式化器接口
type CodeGenerationManager ¶
type CodeGenerationManager struct {
// contains filtered or unexported fields
}
CodeGenerationManager 代码生成管理器
func NewCodeGenerationManager ¶
func NewCodeGenerationManager() *CodeGenerationManager
NewCodeGenerationManager 创建代码生成管理器
func (*CodeGenerationManager) CreateProjectStructure ¶
func (m *CodeGenerationManager) CreateProjectStructure(options *GenerateOptions) error
CreateProjectStructure 创建项目结构
func (*CodeGenerationManager) Generate ¶
func (m *CodeGenerationManager) Generate(ctx context.Context, spec *APISpec, options *GenerateOptions) error
Generate 生成代码
func (*CodeGenerationManager) GenerateConfig ¶
func (m *CodeGenerationManager) GenerateConfig(spec *APISpec, options *GenerateOptions) error
GenerateConfig 生成配置文件
func (*CodeGenerationManager) GenerateFromOpenAPI ¶
func (m *CodeGenerationManager) GenerateFromOpenAPI(ctx context.Context, openAPIFile string, options *GenerateOptions) error
GenerateFromOpenAPI 从OpenAPI规范生成代码
func (*CodeGenerationManager) GenerateFromProtobuf ¶
func (m *CodeGenerationManager) GenerateFromProtobuf(ctx context.Context, protoFiles []string, options *GenerateOptions) error
GenerateFromProtobuf 从protobuf文件生成代码
func (*CodeGenerationManager) GetGenerator ¶
func (m *CodeGenerationManager) GetGenerator(name string) (CodeGenerator, bool)
GetGenerator 获取指定生成器
func (*CodeGenerationManager) ListGenerators ¶
func (m *CodeGenerationManager) ListGenerators() []CodeGenerator
ListGenerators 列出所有生成器
func (*CodeGenerationManager) RegisterGenerator ¶
func (m *CodeGenerationManager) RegisterGenerator(generator CodeGenerator)
RegisterGenerator 注册生成器
func (*CodeGenerationManager) SetVerbose ¶
func (m *CodeGenerationManager) SetVerbose(verbose bool)
SetVerbose 设置详细模式
type CodeGenerator ¶
type CodeGenerator interface {
// GenerateAPI 生成API相关代码
GenerateAPI(ctx context.Context, spec *APISpec, options *GenerateOptions) error
// GenerateClient 生成客户端代码
GenerateClient(ctx context.Context, spec *APISpec, options *GenerateOptions) error
// GenerateTests 生成测试代码
GenerateTests(ctx context.Context, spec *APISpec, options *GenerateOptions) error
// GenerateDocs 生成文档
GenerateDocs(ctx context.Context, spec *APISpec, options *GenerateOptions) error
// GenerateService 生成服务实现代码
GenerateService(ctx context.Context, spec *APISpec, options *GenerateOptions) error
// GenerateMiddleware 生成中间件代码
GenerateMiddleware(ctx context.Context, spec *APISpec, options *GenerateOptions) error
// GetName 获取生成器名称
GetName() string
// GetSupportedFormats 获取支持的格式
GetSupportedFormats() []string
}
CodeGenerator 代码生成器接口
type Endpoint ¶
type Endpoint struct {
Name string `json:"name"`
Path string `json:"path"`
Method string `json:"method"`
Handler string `json:"handler"`
Request *Model `json:"request,omitempty"`
Response *Model `json:"response,omitempty"`
Middleware []string `json:"middleware,omitempty"`
Tags []string `json:"tags,omitempty"`
Summary string `json:"summary,omitempty"`
Description string `json:"description,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
}
Endpoint API端点
type Field ¶
type Field struct {
Name string `json:"name"`
Type string `json:"type"`
Required bool `json:"required"`
Default interface{} `json:"default,omitempty"`
Description string `json:"description,omitempty"`
Tags []string `json:"tags,omitempty"`
Validation *Validation `json:"validation,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
}
Field 模型字段
type FileGenerator ¶
type FileGenerator interface {
// GenerateFile 生成单个文件
GenerateFile(ctx context.Context, spec *APISpec, options *GenerateOptions, filePath string) error
// GenerateDirectory 生成目录结构
GenerateDirectory(ctx context.Context, spec *APISpec, options *GenerateOptions, dirPath string) error
// GetTemplatePath 获取模板路径
GetTemplatePath(templateName string) string
}
FileGenerator 文件生成器接口
type GenerateOptions ¶
type GenerateOptions struct {
OutputDir string `json:"output_dir"`
TemplateDir string `json:"template_dir,omitempty"`
Language string `json:"language"` // go, typescript, python, etc.
Framework string `json:"framework"` // gin, chi, echo, etc.
PackageName string `json:"package_name"`
ModuleName string `json:"module_name"`
GenerateTypes []string `json:"generate_types"` // api, client, tests, docs, service, middleware
Features []string `json:"features"` // openapi, swagger, validation, etc.
Config map[string]string `json:"config,omitempty"`
Verbose bool `json:"verbose"`
DryRun bool `json:"dry_run"`
}
GenerateOptions 生成选项
type GeneratorRegistry ¶
type GeneratorRegistry struct {
// contains filtered or unexported fields
}
GeneratorRegistry 生成器注册表
func NewGeneratorRegistry ¶
func NewGeneratorRegistry() *GeneratorRegistry
NewGeneratorRegistry 创建新的生成器注册表
func (*GeneratorRegistry) GenerateAll ¶
func (r *GeneratorRegistry) GenerateAll(ctx context.Context, spec *APISpec, options *GenerateOptions) error
GenerateAll 使用所有支持的生成器生成代码
func (*GeneratorRegistry) Get ¶
func (r *GeneratorRegistry) Get(name string) (CodeGenerator, bool)
Get 获取生成器
func (*GeneratorRegistry) Register ¶
func (r *GeneratorRegistry) Register(generator CodeGenerator)
Register 注册生成器
type GoAPIGenerator ¶
type GoAPIGenerator struct {
*BaseGenerator
}
GoAPIGenerator Go API生成器
func (*GoAPIGenerator) GenerateAPI ¶
func (g *GoAPIGenerator) GenerateAPI(ctx context.Context, spec *APISpec, options *GenerateOptions) error
GenerateAPI 生成API代码
func (*GoAPIGenerator) GenerateClient ¶
func (g *GoAPIGenerator) GenerateClient(ctx context.Context, spec *APISpec, options *GenerateOptions) error
GenerateClient 生成客户端代码
func (*GoAPIGenerator) GenerateDocs ¶
func (g *GoAPIGenerator) GenerateDocs(ctx context.Context, spec *APISpec, options *GenerateOptions) error
GenerateDocs 生成文档
func (*GoAPIGenerator) GenerateMiddleware ¶
func (g *GoAPIGenerator) GenerateMiddleware(ctx context.Context, spec *APISpec, options *GenerateOptions) error
GenerateMiddleware 生成中间件代码
func (*GoAPIGenerator) GenerateService ¶
func (g *GoAPIGenerator) GenerateService(ctx context.Context, spec *APISpec, options *GenerateOptions) error
GenerateService 生成服务代码
func (*GoAPIGenerator) GenerateTests ¶
func (g *GoAPIGenerator) GenerateTests(ctx context.Context, spec *APISpec, options *GenerateOptions) error
GenerateTests 生成测试代码
type GoCodeFormatter ¶
type GoCodeFormatter struct{}
GoCodeFormatter Go代码格式化器
func (*GoCodeFormatter) Format ¶
func (f *GoCodeFormatter) Format(code string, language string) (string, error)
Format 格式化代码
func (*GoCodeFormatter) FormatFile ¶
func (f *GoCodeFormatter) FormatFile(filePath string, language string) error
FormatFile 格式化文件
type GoFileGenerator ¶
type GoFileGenerator struct {
// contains filtered or unexported fields
}
GoFileGenerator Go文件生成器
func NewGoFileGenerator ¶
func NewGoFileGenerator(engine TemplateEngine) *GoFileGenerator
NewGoFileGenerator 创建Go文件生成器
func (*GoFileGenerator) GenerateDirectory ¶
func (g *GoFileGenerator) GenerateDirectory(ctx context.Context, spec *APISpec, options *GenerateOptions, dirPath string) error
GenerateDirectory 生成目录结构
func (*GoFileGenerator) GenerateFile ¶
func (g *GoFileGenerator) GenerateFile(ctx context.Context, spec *APISpec, options *GenerateOptions, filePath string) error
GenerateFile 生成单个文件
func (*GoFileGenerator) GetTemplatePath ¶
func (g *GoFileGenerator) GetTemplatePath(templateName string) string
GetTemplatePath 获取模板路径
type GoTemplateEngine ¶
type GoTemplateEngine struct {
// contains filtered or unexported fields
}
GoTemplateEngine Go模板引擎
func NewGoTemplateEngine ¶
func NewGoTemplateEngine() *GoTemplateEngine
NewGoTemplateEngine 创建Go模板引擎
func (*GoTemplateEngine) LoadTemplates ¶
func (e *GoTemplateEngine) LoadTemplates(templateDir string) error
LoadTemplates 加载模板
func (*GoTemplateEngine) Render ¶
func (e *GoTemplateEngine) Render(templateName string, data interface{}, output io.Writer) error
Render 渲染模板
func (*GoTemplateEngine) RenderFile ¶
func (e *GoTemplateEngine) RenderFile(templatePath string, data interface{}, outputPath string) error
RenderFile 渲染文件模板
func (*GoTemplateEngine) RenderString ¶
func (e *GoTemplateEngine) RenderString(templateStr string, data interface{}) (string, error)
RenderString 渲染字符串模板
type Middleware ¶
type Middleware struct {
Name string `json:"name"`
Type string `json:"type"`
Priority int `json:"priority"`
Config map[string]string `json:"config,omitempty"`
Description string `json:"description,omitempty"`
}
Middleware 中间件
type Model ¶
type Model struct {
Name string `json:"name"`
Type string `json:"type"`
Fields []Field `json:"fields"`
Description string `json:"description,omitempty"`
Tags []string `json:"tags,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
}
Model 数据模型
type Service ¶
type Service struct {
Name string `json:"name"`
Type string `json:"type"` // http, grpc, cron, etc.
Endpoints []Endpoint `json:"endpoints,omitempty"`
Config map[string]string `json:"config,omitempty"`
Description string `json:"description,omitempty"`
}
Service 服务定义
type SpecValidator ¶
type SpecValidator struct{}
SpecValidator 规范验证器
func (*SpecValidator) ValidateOptions ¶
func (v *SpecValidator) ValidateOptions(options *GenerateOptions) error
ValidateOptions 验证生成选项
func (*SpecValidator) ValidateSpec ¶
func (v *SpecValidator) ValidateSpec(spec *APISpec) error
ValidateSpec 验证API规范
type TemplateEngine ¶
type TemplateEngine interface {
// Render 渲染模板
Render(templateName string, data interface{}, output io.Writer) error
// RenderFile 渲染文件模板
RenderFile(templatePath string, data interface{}, outputPath string) error
// RenderString 渲染字符串模板
RenderString(template string, data interface{}) (string, error)
// LoadTemplates 加载模板
LoadTemplates(templateDir string) error
}
TemplateEngine 模板引擎接口
type Validation ¶
type Validation struct {
Min *int `json:"min,omitempty"`
Max *int `json:"max,omitempty"`
Pattern string `json:"pattern,omitempty"`
MinLength *int `json:"min_length,omitempty"`
MaxLength *int `json:"max_length,omitempty"`
Enum []string `json:"enum,omitempty"`
Custom string `json:"custom,omitempty"`
}
Validation 字段验证规则