parser

package
v2.13.1 Latest Latest
Warning

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

Go to latest
Published: May 5, 2023 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package parser parses API definitions in Go

Package parser parses API definitions in Go

Package parser parses API definitions in Go

Index

Constants

View Source
const (
	// QueryParamTag is the tag name for parameters in query
	QueryParamTag = "param"

	// JSONParamTag is the tag name for JSON
	JSONParamTag = "json"
)
View Source
const FormTagKey = "form"

FormTagKey is a tag key for fields uploaded in multipart

Variables

This section is empty.

Functions

This section is empty.

Types

type Endpoint

type Endpoint struct {
	Method             MethodType
	RawPath, Path      string
	Placeholder        string
	UseMultipartUpload bool

	RequestPayloadName   string
	ResponsePayloadName  string
	RequestPayload       *ast.StructType
	ResponsePayload      *ast.StructType
	RequestGo2tsPayload  *eptypes.Object
	ResponseGo2tsPayload *eptypes.Object

	SwagComments []string

	File                      string
	RequestPos, ResponsePos   token.Pos
	RequestLine, ResponseLine int
	// contains filtered or unexported fields
}

Endpoint represents one HTTP endpoint

func (*Endpoint) GetFullPath

func (e *Endpoint) GetFullPath(splitter string, fn func(rawPath, path, placeholder string) string) string

GetFullPath returns the full path foe the endpoint

func (*Endpoint) GetParent

func (e *Endpoint) GetParent() *Group

GetParent returns the parent Group

type FileField added in v2.6.0

type FileField struct {
	Key     string
	Value   eptypes.ObjectEntry
	FormTag string
	Type    MultipartUploadType
}

FileField is a result type for GetFileFields

func GetFileFields added in v2.6.0

func GetFileFields(obj *eptypes.Object) (res []FileField, err error)

GetFileFields returns fields for files

type Group

type Group struct {
	ImportPath    string
	RawPath, Path string
	Dir           string
	Placeholder   string
	ParsedTypes   map[string]eptypes.Type

	Children  []*Group
	Endpoints []*Endpoint
	// contains filtered or unexported fields
}

Group is a layer for endpoints

func Parse

func Parse(dir string) (*Group, error)

Parse parses

func (*Group) GetFullPath

func (g *Group) GetFullPath(splitter string, fn func(rawPath, path, placeholder string) string) string

GetFullPath returns the full path foe the endpoint

func (*Group) GetParent

func (g *Group) GetParent() *Group

GetParent returns the parent Group

type MethodType

type MethodType string

MethodType represents methods for HTTP

const (
	// GET is GET method for HTTP
	GET MethodType = "GET"
	// POST is POST method for HTTP
	POST MethodType = "POST"
	// PUT is PUT method for HTTP
	PUT MethodType = "PUT"
	// DELETE is method for HTTP
	DELETE MethodType = "DELETE"
	// PATCH is method for HTTP
	PATCH MethodType = "PATCH"
)

type MultipartHeader added in v2.6.0

type MultipartHeader struct {
	eptypes.Common
}

MultipartHeader is mime/multipart.FileHeader

func (*MultipartHeader) String added in v2.6.0

func (uf *MultipartHeader) String() string

String returns this type in string representation

func (*MultipartHeader) UsedAsMapKey added in v2.6.0

func (uf *MultipartHeader) UsedAsMapKey() bool

UsedAsMapKey returns whether this type can be used as the key for map

type MultipartUploadType added in v2.6.0

type MultipartUploadType int

MultipartUploadType is a type

const (
	// UploadNone means no the field is not a file
	UploadNone MultipartUploadType = iota
	// UploadSingleFile means the field is a file
	UploadSingleFile
	// UploadMultipleFiles means the field is a slice of files
	UploadMultipleFiles
)

func GetMultipartUploadType added in v2.6.0

func GetMultipartUploadType(t eptypes.Type) MultipartUploadType

GetMultipartUploadType checks t is *multipart.FileHeader or []*multipart.FileHeader Multipart data in map are not supported

func ValidateMultipartUploadType added in v2.6.0

func ValidateMultipartUploadType(t eptypes.Type, tag string) (MultipartUploadType, error)

ValidateMultipartUploadType checks t is *multipart.FileHeader or []*multipart.FileHeader And validate form tag

Jump to

Keyboard shortcuts

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