generator

package
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Amp added in v0.0.4

func Amp(field ast.Expr) ast.Expr

func Eq added in v0.0.4

func Eq(left, right ast.Expr) *ast.BinaryExpr

func Field added in v0.0.4

func Field(name string, fieldType ast.Expr, tags string) *ast.Field

func FieldA added in v0.0.4

func FieldA(field *ast.Field) []*ast.Field

func FormatGoLikeIdentifier

func FormatGoLikeIdentifier(name string) string

func Func added in v0.0.4

func Func(name string, receiver *ast.Field, params []*ast.Field, result []*ast.Field, body []ast.Stmt) *ast.FuncDecl

func Generate

func Generate(ctx context.Context, opts *options.Options) error

func GenerateToIO

func GenerateToIO(ctx context.Context, input io.Reader, schemasOutput io.Writer, handlersOutput io.Writer,
	importPrefix string, packageName string, opts *options.Options,
) error

func GetModelName

func GetModelName(yamlFilePath string) string

func GetSchemaValidators

func GetSchemaValidators(schema *openapi3.SchemaRef) []string

func GoIdentLowercase

func GoIdentLowercase(name string) string

func I added in v0.0.4

func I(name string) *ast.Ident

func Ne added in v0.0.4

func Ne(left, right ast.Expr) *ast.BinaryExpr

func ParseRefTypeName

func ParseRefTypeName(ref string) string

func Ret added in v0.0.4

func Ret() *ast.ReturnStmt

func Ret1 added in v0.0.4

func Ret1(expr ast.Expr) *ast.ReturnStmt

func Ret2 added in v0.0.4

func Ret2(expr1, expr2 ast.Expr) *ast.ReturnStmt

func Sel added in v0.0.4

func Sel(field ast.Expr, sel string) ast.Expr

func Star added in v0.0.4

func Star(field ast.Expr) ast.Expr

func Str added in v0.0.4

func Str(value string) *ast.BasicLit

Types

type Generator

type Generator struct {
	SchemasFile  *SchemasFile
	HandlersFile *HandlersFile
}

func NewGenerator

func NewGenerator(importPrefix string, packageName string, requiredFieldsArePointers bool) *Generator

func (*Generator) AddContentTypeToHandler

func (g *Generator) AddContentTypeToHandler(baseName string, rawContentType string)

func (*Generator) AddDependencyToHandler

func (g *Generator) AddDependencyToHandler(baseName string)

func (*Generator) AddHandleOperationMethod

func (g *Generator) AddHandleOperationMethod(baseName string)

func (*Generator) AddInterface

func (g *Generator) AddInterface(baseName string)

func (*Generator) AddParseParamsMethods

func (g *Generator) AddParseParamsMethods(baseName string, contentType string, operation *openapi3.Operation) error

func (*Generator) AddResponseCodeModels

func (g *Generator) AddResponseCodeModels(baseName string, code string, response *openapi3.ResponseRef) error

func (*Generator) AddResponseModel

func (g *Generator) AddResponseModel(baseName string, responseCodes []string)

func (*Generator) AddRoute

func (g *Generator) AddRoute(baseName string, method string, pathName string)

func (*Generator) AddWriteResponseMethod

func (g *Generator) AddWriteResponseMethod(baseName string, operation *openapi3.Operation) error

func (*Generator) Generate

func (g *Generator) Generate(yaml *openapi3.T)

func (*Generator) GetOperationParamsByType

func (g *Generator) GetOperationParamsByType(operation *openapi3.Operation, paramIn string) openapi3.Parameters

func (*Generator) ProcessApplicationJSONOperation

func (g *Generator) ProcessApplicationJSONOperation(pathName string, method string, contentType string,
	operation *openapi3.Operation,
) error

func (*Generator) ProcessOperation

func (g *Generator) ProcessOperation(pathName string, method string, operation *openapi3.Operation) error

func (*Generator) ProcessPaths

func (g *Generator) ProcessPaths(paths *openapi3.Paths) error

func (*Generator) ProcessSchemas

func (g *Generator) ProcessSchemas(schemas map[string]*openapi3.SchemaRef) error

func (*Generator) WriteToOutput

func (g *Generator) WriteToOutput(modelsOutput io.Writer, handlersOutput io.Writer) error

type HandlersFile

type HandlersFile struct {
	// contains filtered or unexported fields
}

func NewHandlersFile

func NewHandlersFile(packageName string, importPrefix string, modelsImportPath string, requiredFieldsArePointers bool) *HandlersFile

func (*HandlersFile) AddContentTypeHandler

func (h *HandlersFile) AddContentTypeHandler(baseName string, rawContentType string)

func (*HandlersFile) AddCreateResponseModel added in v0.0.2

func (h *HandlersFile) AddCreateResponseModel(baseName string, code string, response *openapi3.ResponseRef) error

func (*HandlersFile) AddDependencyToHandler

func (h *HandlersFile) AddDependencyToHandler(baseName string)

func (*HandlersFile) AddHandleOperationMethod

func (h *HandlersFile) AddHandleOperationMethod(baseName string)

func (*HandlersFile) AddImport

func (h *HandlersFile) AddImport(path string)

func (*HandlersFile) AddInterface

func (h *HandlersFile) AddInterface(name string, methodName string, requestName string, responseName string)

func (*HandlersFile) AddParseCookiesMethod added in v0.0.4

func (h *HandlersFile) AddParseCookiesMethod(baseName string, params openapi3.Parameters) error

func (*HandlersFile) AddParseHeadersMethod

func (h *HandlersFile) AddParseHeadersMethod(baseName string, params openapi3.Parameters) error

func (*HandlersFile) AddParsePathParamsMethod

func (h *HandlersFile) AddParsePathParamsMethod(baseName string, params openapi3.Parameters) error

func (*HandlersFile) AddParseQueryParamsMethod

func (h *HandlersFile) AddParseQueryParamsMethod(baseName string, params openapi3.Parameters) error

func (*HandlersFile) AddParseRequestBodyMethod

func (h *HandlersFile) AddParseRequestBodyMethod(baseName string, contentType string, body *openapi3.RequestBodyRef) error

func (*HandlersFile) AddParseRequestMethod

func (h *HandlersFile) AddParseRequestMethod(baseName string, contentType string, pathParams openapi3.Parameters,
	queryParams openapi3.Parameters, headers openapi3.Parameters, cookieParams openapi3.Parameters,
	body *openapi3.RequestBodyRef,
)

func (*HandlersFile) AddRouteToRouter

func (h *HandlersFile) AddRouteToRouter(baseName string, method string, pathName string)

func (*HandlersFile) AddWriteResponseCode

func (h *HandlersFile) AddWriteResponseCode(baseName string, code string, response *openapi3.ResponseRef) error

func (*HandlersFile) AddWriteResponseMethod

func (h *HandlersFile) AddWriteResponseMethod(baseName string, codes []string)

func (*HandlersFile) AssignStringField

func (h *HandlersFile) AssignStringField(paramsName string, varName string, fieldName string, param *openapi3.SchemaRef, required bool) []ast.Stmt

func (*HandlersFile) CreateHandler

func (h *HandlersFile) CreateHandler(baseName string)

func (*HandlersFile) FinalizeHandlerSwitches

func (h *HandlersFile) FinalizeHandlerSwitches()

func (*HandlersFile) GenerateFile

func (h *HandlersFile) GenerateFile() *ast.File

func (*HandlersFile) GenerateImportsSpecs

func (h *HandlersFile) GenerateImportsSpecs(imp []string) ([]*ast.ImportSpec, []ast.Spec)

func (*HandlersFile) GetHandler

func (h *HandlersFile) GetHandler(baseName string) *ast.BlockStmt

func (*HandlersFile) InitFields

func (h *HandlersFile) InitFields(packageName string, modelsImportPath string)

func (*HandlersFile) InitHandlerConstructor

func (h *HandlersFile) InitHandlerConstructor()

func (*HandlersFile) InitHandlerStruct

func (h *HandlersFile) InitHandlerStruct()

func (*HandlersFile) InitImports

func (h *HandlersFile) InitImports(modelsImportPath string)

func (*HandlersFile) InitRoutesFunc

func (h *HandlersFile) InitRoutesFunc()

func (*HandlersFile) WriteToOutput

func (h *HandlersFile) WriteToOutput(output io.Writer) error

type SchemaField

type SchemaField struct {
	Name        string
	Type        string
	TagJSON     []string
	TagValidate []string
	Required    bool
}

type SchemaStruct

type SchemaStruct struct {
	Name   string
	Fields []SchemaField
}

type SchemasFile

type SchemasFile struct {
	// contains filtered or unexported fields
}

func NewSchemasFile

func NewSchemasFile(requiredFieldsArePointers bool) *SchemasFile

func (*SchemasFile) AddHeadersModel

func (m *SchemasFile) AddHeadersModel(baseName string, headers openapi3.Headers) error

func (*SchemasFile) AddImport

func (m *SchemasFile) AddImport(path string)

func (*SchemasFile) AddParamsModel

func (m *SchemasFile) AddParamsModel(baseName string, paramType string, params openapi3.Parameters) error

func (*SchemasFile) AddSchema

func (m *SchemasFile) AddSchema(model SchemaStruct)

func (*SchemasFile) AddSliceAlias

func (m *SchemasFile) AddSliceAlias(name string, typeName string)

func (*SchemasFile) AddTypeAlias

func (m *SchemasFile) AddTypeAlias(name string, typeName string)

func (*SchemasFile) GenerateImportsSpecs

func (m *SchemasFile) GenerateImportsSpecs(imp []string) ([]*ast.ImportSpec, []ast.Spec)

func (*SchemasFile) GenerateRequestModel

func (m *SchemasFile) GenerateRequestModel(baseName string, contentType string, pathParams openapi3.Parameters,
	queryParams openapi3.Parameters, headers openapi3.Parameters, cookieParams openapi3.Parameters,
	body *openapi3.RequestBodyRef,
)

func (*SchemasFile) GetFieldTypeFromSchema

func (m *SchemasFile) GetFieldTypeFromSchema(modelName string, fieldName string,
	fieldSchema *openapi3.SchemaRef,
) (string, error)

func (*SchemasFile) GetIntegerType

func (m *SchemasFile) GetIntegerType(format string) string

func (*SchemasFile) GetStringType

func (m *SchemasFile) GetStringType(format string) string

func (*SchemasFile) ProcessArraySchema

func (m *SchemasFile) ProcessArraySchema(modelName string, schema *openapi3.SchemaRef,
) error

func (*SchemasFile) ProcessObjectSchema

func (m *SchemasFile) ProcessObjectSchema(modelName string, schema *openapi3.SchemaRef) error

func (*SchemasFile) ProcessSchema

func (m *SchemasFile) ProcessSchema(modelName string, schema *openapi3.SchemaRef) error

func (*SchemasFile) ProcessTypeAlias

func (m *SchemasFile) ProcessTypeAlias(modelName string, schema *openapi3.SchemaRef) error

func (*SchemasFile) WriteToOutput

func (m *SchemasFile) WriteToOutput(output io.Writer) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL