handle_swagger

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ShadownServer

func ShadownServer(ctx context.Context, engine http.Handler, port int)

func SwaggerUI

func SwaggerUI() func(*gin.Context)

Types

type Contact

type Contact struct {
	Name  string `json:"name,omitempty"`
	Email string `json:"email,omitempty"`
	URL   string `json:"url,omitempty"`
}

type Info

type Info struct {
	Title       string   `json:"title"`
	Description string   `json:"description,omitempty"`
	Version     string   `json:"version"`
	Contact     *Contact `json:"contact,omitempty"`
}

type ModelParser

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

func NewModelParser

func NewModelParser() *ModelParser

func (*ModelParser) GetSchemas

func (p *ModelParser) GetSchemas() map[string]Schema

func (*ModelParser) Register

func (p *ModelParser) Register(model interface{}) string

type Operation

type Operation struct {
	Summary     string                `json:"summary,omitempty"`
	Description string                `json:"description,omitempty"`
	Tags        []string              `json:"tags,omitempty"`
	Consumes    []string              `json:"consumes,omitempty"`
	Produces    []string              `json:"produces,omitempty"`
	Parameters  []Parameter           `json:"parameters,omitempty"`
	Responses   map[string]Response   `json:"responses"`
	Security    []SecurityRequirement `json:"security,omitempty"`
}

type Parameter

type Parameter struct {
	Name        string      `json:"name"`
	In          string      `json:"in"` // path, query, header, body
	Description string      `json:"description,omitempty"`
	Required    bool        `json:"required"`
	Type        string      `json:"type,omitempty"`
	Schema      *SchemaRef  `json:"schema,omitempty"`
	Example     interface{} `json:"example,omitempty"`
}

type PathItem

type PathItem map[string]Operation

type Property

type Property struct {
	Type        string      `json:"type"`
	Description string      `json:"description,omitempty"`
	Example     interface{} `json:"example,omitempty"`
	Format      string      `json:"format,omitempty"`
	Minimum     *int        `json:"minimum,omitempty"`
	Maximum     *int        `json:"maximum,omitempty"`
	MinLength   *int        `json:"minLength,omitempty"`
	MaxLength   *int        `json:"maxLength,omitempty"`
	Enum        []string    `json:"enum,omitempty"`
	Ref         string      `json:"$ref,omitempty"`
	Items       *SchemaRef  `json:"items,omitempty"` // <-- thêm dòng này

}

type Response

type Response struct {
	Description string     `json:"description"`
	Schema      *SchemaRef `json:"schema,omitempty"`
}

type RouteBuilder

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

func (*RouteBuilder) BearerAuth

func (b *RouteBuilder) BearerAuth() *RouteBuilder

BearerAuth tiện lợi cho Bearer token

func (*RouteBuilder) Body

func (b *RouteBuilder) Body(model interface{}, desc string) *RouteBuilder

func (*RouteBuilder) Build

func (b *RouteBuilder) Build()

Build hoàn tất route với tất cả middleware đã được thêm

func (*RouteBuilder) Description

func (b *RouteBuilder) Description(d string) *RouteBuilder

func (*RouteBuilder) Handler

func (b *RouteBuilder) Handler(h gin.HandlerFunc) *RouteBuilder

Handler gán handler

func (*RouteBuilder) HeaderParam

func (b *RouteBuilder) HeaderParam(name, desc string, required bool) *RouteBuilder

func (*RouteBuilder) PathParam

func (b *RouteBuilder) PathParam(name, desc string, required bool) *RouteBuilder

func (*RouteBuilder) Public

func (b *RouteBuilder) Public() *RouteBuilder

Public đánh dấu route không cần authentication

func (*RouteBuilder) QueryParam

func (b *RouteBuilder) QueryParam(name, desc string, required bool) *RouteBuilder

func (*RouteBuilder) Response

func (b *RouteBuilder) Response(code int, model interface{}, desc string) *RouteBuilder

func (*RouteBuilder) Security

func (b *RouteBuilder) Security(name string, scopes ...string) *RouteBuilder

Security với scopes (cho OAuth2)

func (*RouteBuilder) Summary

func (b *RouteBuilder) Summary(s string) *RouteBuilder

func (*RouteBuilder) Tags

func (b *RouteBuilder) Tags(tags ...string) *RouteBuilder

func (*RouteBuilder) Use

func (b *RouteBuilder) Use(middlewares ...gin.HandlerFunc) *RouteBuilder

type Schema

type Schema struct {
	Type       string              `json:"type"`
	Properties map[string]Property `json:"properties,omitempty"`
	Required   []string            `json:"required,omitempty"`
	Items      *SchemaRef          `json:"items,omitempty"`
	Ref        string              `json:"$ref,omitempty"`
}

type SchemaRef

type SchemaRef struct {
	Ref string `json:"$ref,omitempty"`
}

type SecurityRequirement

type SecurityRequirement map[string][]string

type SecurityScheme

type SecurityScheme struct {
	Type             string            `json:"type"`
	Description      string            `json:"description,omitempty"`
	Name             string            `json:"name,omitempty"`
	In               string            `json:"in,omitempty"`
	Flow             string            `json:"flow,omitempty"`
	AuthorizationURL string            `json:"authorizationUrl,omitempty"`
	TokenURL         string            `json:"tokenUrl,omitempty"`
	Scopes           map[string]string `json:"scopes,omitempty"`
}

type SwaggerDoc

type SwaggerDoc struct {
	Swagger             string                    `json:"swagger"`
	Info                Info                      `json:"info"`
	Host                string                    `json:"host"`
	BasePath            string                    `json:"basePath"`
	Schemes             []string                  `json:"schemes"`
	Paths               map[string]PathItem       `json:"paths"`
	Definitions         map[string]Schema         `json:"definitions"`
	SecurityDefinitions map[string]SecurityScheme `json:"securityDefinitions,omitempty"`
	Tags                []Tag                     `json:"tags,omitempty"`
}

type SwaggerGenerator

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

func NewSwaggerGenerator

func NewSwaggerGenerator(title, version, host, basePath string) *SwaggerGenerator

func (*SwaggerGenerator) AddBearerAuth

func (g *SwaggerGenerator) AddBearerAuth(name string)

Thêm vào SwaggerGenerator

func (*SwaggerGenerator) AddBearerAuthWithDescription

func (g *SwaggerGenerator) AddBearerAuthWithDescription(name, description string)

Hoặc chi tiết hơn

func (*SwaggerGenerator) AddRoute

func (g *SwaggerGenerator) AddRoute(method, path string, op Operation)

AddRoute thêm route

func (*SwaggerGenerator) AddSecurityDefinition

func (g *SwaggerGenerator) AddSecurityDefinition(name string, scheme SecurityScheme)

AddSecurityDefinition thêm định nghĩa security

func (*SwaggerGenerator) AddTag

func (g *SwaggerGenerator) AddTag(name, description string)

AddTag thêm tag để nhóm routes

func (*SwaggerGenerator) DELETE

func (g *SwaggerGenerator) DELETE(path string) *RouteBuilder

func (*SwaggerGenerator) GET

func (g *SwaggerGenerator) GET(path string) *RouteBuilder

func (*SwaggerGenerator) GenerateJSON

func (g *SwaggerGenerator) GenerateJSON() string

GenerateJSON sinh file swagger.json

func (*SwaggerGenerator) OPTIONS

func (g *SwaggerGenerator) OPTIONS(path string) *RouteBuilder

func (*SwaggerGenerator) PATCH

func (g *SwaggerGenerator) PATCH(path string) *RouteBuilder

func (*SwaggerGenerator) POST

func (g *SwaggerGenerator) POST(path string) *RouteBuilder

func (*SwaggerGenerator) PUT

func (g *SwaggerGenerator) PUT(path string) *RouteBuilder

func (*SwaggerGenerator) RegisterModel

func (g *SwaggerGenerator) RegisterModel(model interface{}) string

RegisterModel đăng ký model để gen schema

func (*SwaggerGenerator) Save

func (g *SwaggerGenerator) Save(filename string) error

Save lưu ra file

func (*SwaggerGenerator) SetEngine

func (g *SwaggerGenerator) SetEngine(engine *gin.Engine) *SwaggerGenerator

SetEngine gán engine và tạo group mặc định

func (*SwaggerGenerator) SetGlobalSecurity

func (g *SwaggerGenerator) SetGlobalSecurity(name string, scopes ...string)

SetGlobalSecurity thiết lập security mặc định cho tất cả routes

func (*SwaggerGenerator) Use

func (g *SwaggerGenerator) Use(middlewares ...gin.HandlerFunc) *SwaggerGenerator

Use thêm middleware global

type Tag

type Tag struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
}

Jump to

Keyboard shortcuts

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