gin

package module
v1.3.6 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2025 License: MIT Imports: 23 Imported by: 1

README

English  |  中文

goner/gin Component

The goner/gin Component is a web framework wrapper based on gin-gonic/gin, providing HTTP service support for the Gone framework.

Features

  • Route Management: Complete RESTful routing support with route grouping
  • Middleware: Built-in common middleware with support for custom middleware development
  • Parameter Injection: Automatic parameter injection from HTTP requests into structs
  • SSE Support: Native support for Server-Sent Events
  • Error Handling: Unified error handling mechanism
  • Performance Optimization: Built-in request rate limiting, connection pooling, and other optimizations
  • Observability: Built-in request logging and distributed tracing support

Installation

go get github.com/gone-io/goner/gin

Quick Start

Basic Routing Example
package main

import (
	"github.com/gone-io/gone/v2"
	"github.com/gone-io/goner"
	"github.com/gone-io/goner/gin"
)

type HelloController struct {
	gone.Flag
	gin.IRouter `gone:"*"`
}

func (h *HelloController) Mount() gin.MountError {
	h.GET("/hello", h.hello)
	return nil
}

func (h *HelloController) hello() (string, error) {
	return "Hello, Gone!", nil
}

func main() {
	gone.
		Load(&HelloController{}).
		Loads(goner.GinLoad).
		Serve()
}
2. HTTP Parameter Injection

For detailed information, please refer to HTTP Injection Guide

type UserController struct {
    gone.Flag
    gin.IRouter `gone:"*"`
    http.HttInjector `gone:"http"`
}

func (u *UserController) Mount() gin.MountError {
    u.POST("/users/:id", u.createUser)
    return nil
}

// Fields in req will be automatically injected from the HTTP request
func (u *UserController) createUser(req struct {
    ID        int64  `http:"param=id"`   // Path parameter
    Name      string `http:"query=name"` // Query parameter
    Token     string `http:"header=token"`      // Request header
    SessionID string `http:"cookie=session-id"` // Cookie
    Data      User   `http:"body"`              // Request body
}) error {
    // Handle user creation logic
    return nil
}
3. Direct Data Return without calling context.Success

Middleware Usage

1. System Middleware

The system includes several built-in middleware components:

  • Request logging
  • Rate limiting
  • Health check
  • Distributed tracing
2. Custom Middleware
type CustomMiddleware struct {
    gone.Flag
}

func (m *CustomMiddleware) Process(ctx *gin.Context) {
    // Pre-processing
    ctx.Next()
    // Post-processing
}

SSE (Server-Sent Events)

Support for server-sent events:

// SSEController is an example controller showing how to use channels to return SSE streams
type SSEController struct {
    gone.Flag
    gone.Logger `gone:"gone-logger"`
    router gin.IRouter `gone:"*"`
}

// Mount implements the Controller interface to mount routes
func (c *SSEController) Mount() gin.GinMountError {
    // Register route
    c.router.GET("/api/sse/events", c.streamEvents)

    return nil
}

// streamEvents returns a channel that will be automatically converted to an SSE stream
func (c *SSEController) streamEvents() (<-chan any, error) {
    // Create a channel for sending events
    ch := make(chan any)

    // Start a goroutine to send events
    go func() {
        defer close(ch) // Ensure channel is closed when function ends

        // Send 10 events
        for i := 1; i <= 10; i++ {
            // Create event data
            eventData := map[string]any{
                "id":      i,
                "message": fmt.Sprintf("This is event #%d", i),
                "time":    time.Now().Format(time.RFC3339),
            }

            // Send event to channel
            ch <- eventData

            // Send one event per second
            time.Sleep(1 * time.Second)
        }

        // Send an error event example
        ch <- gone.NewParameterError("This is an example error event")

        // Wait one second before ending
        time.Sleep(1 * time.Second)
    }()

    return ch, nil
}

Configuration

Server Configuration
# Basic server configuration
server.port=8080                     # Server port, default 8080
server.host=0.0.0.0                  # Server host address, default 0.0.0.0
server.mode=release                  # Server mode, options: debug, release, test, default release
server.max-wait-before-stop=5s       # Maximum wait time before server shutdown, default 5 seconds

server.address=                      # Server address in host:port format, if set, host and port are ignored
server.html-tpl-pattern=             # HTML template file pattern for loading HTML templates
Logging Configuration
# Logging configuration
server.log.format=console                # Log format, default console
server.log.show-request-time=true        # Show request time, default true
server.log.show-request-log=true         # Show request log, default true
server.log.data-max-length=0             # Maximum log data length, 0 means no limit, default 0
server.log.request-id=true               # Record request ID, default true
server.log.remote-ip=true                # Record remote IP, default true
server.log.request-body=true             # Record request body, default true
server.log.user-agent=true               # Record User-Agent, default true
server.log.referer=true                  # Record Referer, default true
server.log.show-response-log=true        # Show response log, default true

# Request body log content type configuration
server.log.show-request-body-for-content-types=application/json;application/xml;application/x-www-form-urlencoded

# Response body log content type configuration
server.log.show-response-body-for-content-types=application/json;application/xml;application/x-www-form-urlencoded
Rate Limiting Configuration
# Rate limiting configuration
server.req.enable-limit=false        # Enable request rate limiting, default false
server.req.limit=100                 # Requests per second limit, default 100
server.req.limit-burst=300           # Burst request limit, default 300
server.req.x-request-id-key=X-Request-Id  # Request ID header key
server.req.x-trace-id-key=X-Trace-Id      # Trace ID header key
Health Check and Tracing Configuration
# Health check
server.health-check=/health          # Health check path, default /health

server.is-after-proxy=false          # Whether behind a proxy, default false; set to true if behind a reverse proxy like Nginx
Proxy and Response Configuration
# Proxy statistics
server.proxy.stat=false              # Enable proxy statistics, default false

# Response wrapping
server.return.wrapped-data=true      # Wrap response data, default true
Service Registration Configuration
# Service registration configuration
server.service-name=                 # Service name for registration, must be set
server.service-use-subnet=0.0.0.0/0  # Subnet for service registration, default 0.0.0.0/0, used to select IP address for registration

Service Registration and Discovery

Gone Gin component supports service registration and discovery, allowing services to be registered with a service registry for easy discovery and invocation by other services.

Service Registration Process

When a service starts, it automatically registers its information with the service registry and deregisters when the service shuts down. The registration process is as follows:

  1. Get the list of local IP addresses
  2. Filter IP addresses based on the configured subnet
  3. Register the service using the filtered IP address and port number
  4. Automatically deregister when the service shuts down
Service Registration Example
package main

import (
	"github.com/gone-io/gone/v2"
	"github.com/gone-io/goner"
	"github.com/gone-io/goner/gin"
	"github.com/gone-io/goner/g"
)

// Implementing service registration requires injecting g.ServiceRegistry
type ServiceRegistry struct {
	gone.Flag
	registry g.ServiceRegistry `gone:"*"`
}

func main() {
	gone.
		NewApp(
            goner.GinLoad, // Load Gone Gin component
            nacos.RegistryLoad, // Load Nacos registry component
            viper.Load, // Load Viper configuration component
            // Load other components
            // ...
        ).
		Serve()
}
Configuration Parameters
  • server.service-name: Service name for registration, must be set
  • server.service-use-subnet: Subnet for service registration, default 0.0.0.0/0, used to select IP address for registration

Best Practices

  1. Route Management

    • Organize controllers by business modules
    • Use route groups to manage related endpoints
    • Use HTTP methods appropriately (GET, POST, PUT, DELETE, etc.)
  2. Parameter Injection

    • Use HTTP injection tags appropriately (param, query, header, cookie, body)
    • Only one body injection per request
    • Add validation rules for injected parameters
  3. Error Handling

    • Use gone.Error for unified error handling
    • Handle exceptions uniformly in middleware
    • Define clear error codes for different types of errors
  4. Performance Optimization

    • Configure rate limiting parameters appropriately
    • Set appropriate log levels
    • Use connection pools for resource management

Performance Testing

See Performance Test Report

Documentation

Overview

Package gin is a generated GoMock package.

Package gin is a generated GoMock package.

Package gin is a generated GoMock package.

Package gin is a generated GoMock package.

Index

Constants

View Source
const (
	// IdGoneGin , IdGoneGinRouter , IdGoneGinProcessor, IdGoneGinProxy, IdGoneGinResponser, IdHttpInjector;
	// The GonerIds of Goners in goner/gin, which integrates gin framework for web request.
	IdGoneGin              = "gone-gin"
	IdGoneGinRouter        = "gone-gin-router"
	IdGoneGinSysMiddleware = "gone-gin-sys-middleware"
	IdGoneGinProxy         = "gone-gin-proxy"
	IdGoneGinResponser     = "gone-gin-responser"
	IdHttpInjector         = "http"
)
View Source
const InternalServerError = "Internal Server Error"
View Source
const TooManyRequests = "Too Many Requests"

Variables

View Source
var NewBusinessError = gone.NewBusinessError

NewBusinessError 新建`业务错误`

View Source
var NewInnerError = gone.NewInnerError

NewInnerError 新建`内部错误`

View Source
var NewParameterError = gone.NewParameterError

NewParameterError 新建`参数错误`

View Source
var ToError = gone.ToError

ToError 转为错误

Functions

func Load

func Load(loader gone.Loader) error

func LoadGinHttpInjector added in v1.3.0

func LoadGinHttpInjector(loader gone.Loader) error

LoadGinHttpInjector load http injector

func NewGinResponser

func NewGinResponser() gone.Goner

func NewGinServer

func NewGinServer() (gone.Goner, gone.Option)

func TimeStat

func TimeStat(name string, start time.Time, logs ...func(format string, args ...any))

TimeStat record the time of function and avg time

Types

type BusinessError

type BusinessError = gone.BusinessError

BusinessError business error Business errors are special cases in business scenarios that need to return different data types in different business contexts; essentially not considered errors, but an abstraction to facilitate business writing, allowing the same interface to have the ability to return different business codes and business data in special cases

type Context

type Context = gin.Context

Context is an alias of gin.Context

type Controller

type Controller = g.Controller

type CustomResponseWriter

type CustomResponseWriter struct {
	gin.ResponseWriter
	// contains filtered or unexported fields
}

func (CustomResponseWriter) Write

func (w CustomResponseWriter) Write(b []byte) (int, error)

func (CustomResponseWriter) WriteString

func (w CustomResponseWriter) WriteString(s string) (int, error)

type HandleProxyToGin

type HandleProxyToGin interface {
	Proxy(handler ...HandlerFunc) []gin.HandlerFunc
	ProxyForMiddleware(handlers ...HandlerFunc) (arr []gin.HandlerFunc)
}

HandleProxyToGin Proxy, provides a proxy function to convert `gone.HandlerFunc` to `gin.HandlerFunc` Inject `gin.HandleProxyToGin` using Id: sys-gone-proxy (`gin.SystemGoneProxy`)

type HandlerFunc

type HandlerFunc = g.HandlerFunc

type IRouter

type IRouter interface {
	IRoutes

	GetGinRouter() gin.IRouter

	Group(string, ...HandlerFunc) RouteGroup

	LoadHTMLGlob(pattern string)
}

type IRoutes

type IRoutes = g.IRoutes

type Middleware

type Middleware interface {
	Process(ctx *gin.Context)
}

type MockAddr added in v1.2.1

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

MockAddr is a mock of Addr interface.

func NewMockAddr added in v1.2.1

func NewMockAddr(ctrl *gomock.Controller) *MockAddr

NewMockAddr creates a new mock instance.

func (*MockAddr) EXPECT added in v1.2.1

func (m *MockAddr) EXPECT() *MockAddrMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockAddr) Network added in v1.2.1

func (m *MockAddr) Network() string

Network mocks base method.

func (*MockAddr) String added in v1.2.1

func (m *MockAddr) String() string

String mocks base method.

type MockAddrMockRecorder added in v1.2.1

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

MockAddrMockRecorder is the mock recorder for MockAddr.

func (*MockAddrMockRecorder) Network added in v1.2.1

func (mr *MockAddrMockRecorder) Network() *gomock.Call

Network indicates an expected call of Network.

func (*MockAddrMockRecorder) String added in v1.2.1

func (mr *MockAddrMockRecorder) String() *gomock.Call

String indicates an expected call of String.

type MockConn added in v1.2.1

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

MockConn is a mock of Conn interface.

func NewMockConn added in v1.2.1

func NewMockConn(ctrl *gomock.Controller) *MockConn

NewMockConn creates a new mock instance.

func (*MockConn) Close added in v1.2.1

func (m *MockConn) Close() error

Close mocks base method.

func (*MockConn) EXPECT added in v1.2.1

func (m *MockConn) EXPECT() *MockConnMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockConn) LocalAddr added in v1.2.1

func (m *MockConn) LocalAddr() net.Addr

LocalAddr mocks base method.

func (*MockConn) Read added in v1.2.1

func (m *MockConn) Read(b []byte) (int, error)

Read mocks base method.

func (*MockConn) RemoteAddr added in v1.2.1

func (m *MockConn) RemoteAddr() net.Addr

RemoteAddr mocks base method.

func (*MockConn) SetDeadline added in v1.2.1

func (m *MockConn) SetDeadline(t time.Time) error

SetDeadline mocks base method.

func (*MockConn) SetReadDeadline added in v1.2.1

func (m *MockConn) SetReadDeadline(t time.Time) error

SetReadDeadline mocks base method.

func (*MockConn) SetWriteDeadline added in v1.2.1

func (m *MockConn) SetWriteDeadline(t time.Time) error

SetWriteDeadline mocks base method.

func (*MockConn) Write added in v1.2.1

func (m *MockConn) Write(b []byte) (int, error)

Write mocks base method.

type MockConnMockRecorder added in v1.2.1

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

MockConnMockRecorder is the mock recorder for MockConn.

func (*MockConnMockRecorder) Close added in v1.2.1

func (mr *MockConnMockRecorder) Close() *gomock.Call

Close indicates an expected call of Close.

func (*MockConnMockRecorder) LocalAddr added in v1.2.1

func (mr *MockConnMockRecorder) LocalAddr() *gomock.Call

LocalAddr indicates an expected call of LocalAddr.

func (*MockConnMockRecorder) Read added in v1.2.1

func (mr *MockConnMockRecorder) Read(b any) *gomock.Call

Read indicates an expected call of Read.

func (*MockConnMockRecorder) RemoteAddr added in v1.2.1

func (mr *MockConnMockRecorder) RemoteAddr() *gomock.Call

RemoteAddr indicates an expected call of RemoteAddr.

func (*MockConnMockRecorder) SetDeadline added in v1.2.1

func (mr *MockConnMockRecorder) SetDeadline(t any) *gomock.Call

SetDeadline indicates an expected call of SetDeadline.

func (*MockConnMockRecorder) SetReadDeadline added in v1.2.1

func (mr *MockConnMockRecorder) SetReadDeadline(t any) *gomock.Call

SetReadDeadline indicates an expected call of SetReadDeadline.

func (*MockConnMockRecorder) SetWriteDeadline added in v1.2.1

func (mr *MockConnMockRecorder) SetWriteDeadline(t any) *gomock.Call

SetWriteDeadline indicates an expected call of SetWriteDeadline.

func (*MockConnMockRecorder) Write added in v1.2.1

func (mr *MockConnMockRecorder) Write(b any) *gomock.Call

Write indicates an expected call of Write.

type MockController added in v1.2.1

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

MockController is a mock of Controller interface.

func NewMockController added in v1.2.1

func NewMockController(ctrl *gomock.Controller) *MockController

NewMockController creates a new mock instance.

func (*MockController) EXPECT added in v1.2.1

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockController) Mount added in v1.2.1

func (m *MockController) Mount() MountError

Mount mocks base method.

type MockControllerMockRecorder added in v1.2.1

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

MockControllerMockRecorder is the mock recorder for MockController.

func (*MockControllerMockRecorder) Mount added in v1.2.1

func (mr *MockControllerMockRecorder) Mount() *gomock.Call

Mount indicates an expected call of Mount.

type MockHandleProxyToGin added in v1.2.1

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

MockHandleProxyToGin is a mock of HandleProxyToGin interface.

func NewMockHandleProxyToGin added in v1.2.1

func NewMockHandleProxyToGin(ctrl *gomock.Controller) *MockHandleProxyToGin

NewMockHandleProxyToGin creates a new mock instance.

func (*MockHandleProxyToGin) EXPECT added in v1.2.1

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockHandleProxyToGin) Proxy added in v1.2.1

func (m *MockHandleProxyToGin) Proxy(handler ...HandlerFunc) []gin.HandlerFunc

Proxy mocks base method.

func (*MockHandleProxyToGin) ProxyForMiddleware added in v1.2.1

func (m *MockHandleProxyToGin) ProxyForMiddleware(handlers ...HandlerFunc) []gin.HandlerFunc

ProxyForMiddleware mocks base method.

type MockHandleProxyToGinMockRecorder added in v1.2.1

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

MockHandleProxyToGinMockRecorder is the mock recorder for MockHandleProxyToGin.

func (*MockHandleProxyToGinMockRecorder) Proxy added in v1.2.1

func (mr *MockHandleProxyToGinMockRecorder) Proxy(handler ...any) *gomock.Call

Proxy indicates an expected call of Proxy.

func (*MockHandleProxyToGinMockRecorder) ProxyForMiddleware added in v1.2.1

func (mr *MockHandleProxyToGinMockRecorder) ProxyForMiddleware(handlers ...any) *gomock.Call

ProxyForMiddleware indicates an expected call of ProxyForMiddleware.

type MockHandler added in v1.2.1

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

MockHandler is a mock of Handler interface.

func NewMockHandler added in v1.2.1

func NewMockHandler(ctrl *gomock.Controller) *MockHandler

NewMockHandler creates a new mock instance.

func (*MockHandler) EXPECT added in v1.2.1

func (m *MockHandler) EXPECT() *MockHandlerMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockHandler) ServeHTTP added in v1.2.1

func (m *MockHandler) ServeHTTP(arg0 http.ResponseWriter, arg1 *http.Request)

ServeHTTP mocks base method.

type MockHandlerMockRecorder added in v1.2.1

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

MockHandlerMockRecorder is the mock recorder for MockHandler.

func (*MockHandlerMockRecorder) ServeHTTP added in v1.2.1

func (mr *MockHandlerMockRecorder) ServeHTTP(arg0, arg1 any) *gomock.Call

ServeHTTP indicates an expected call of ServeHTTP.

type MockListener added in v1.2.1

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

MockListener is a mock of Listener interface.

func NewMockListener added in v1.2.1

func NewMockListener(ctrl *gomock.Controller) *MockListener

NewMockListener creates a new mock instance.

func (*MockListener) Accept added in v1.2.1

func (m *MockListener) Accept() (net.Conn, error)

Accept mocks base method.

func (*MockListener) Addr added in v1.2.1

func (m *MockListener) Addr() net.Addr

Addr mocks base method.

func (*MockListener) Close added in v1.2.1

func (m *MockListener) Close() error

Close mocks base method.

func (*MockListener) EXPECT added in v1.2.1

EXPECT returns an object that allows the caller to indicate expected use.

type MockListenerMockRecorder added in v1.2.1

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

MockListenerMockRecorder is the mock recorder for MockListener.

func (*MockListenerMockRecorder) Accept added in v1.2.1

func (mr *MockListenerMockRecorder) Accept() *gomock.Call

Accept indicates an expected call of Accept.

func (*MockListenerMockRecorder) Addr added in v1.2.1

func (mr *MockListenerMockRecorder) Addr() *gomock.Call

Addr indicates an expected call of Addr.

func (*MockListenerMockRecorder) Close added in v1.2.1

func (mr *MockListenerMockRecorder) Close() *gomock.Call

Close indicates an expected call of Close.

type MockMiddleware added in v1.2.1

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

MockMiddleware is a mock of Middleware interface.

func NewMockMiddleware added in v1.2.1

func NewMockMiddleware(ctrl *gomock.Controller) *MockMiddleware

NewMockMiddleware creates a new mock instance.

func (*MockMiddleware) EXPECT added in v1.2.1

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockMiddleware) Process added in v1.2.1

func (m *MockMiddleware) Process(ctx *OriginContent)

Process mocks base method.

type MockMiddlewareMockRecorder added in v1.2.1

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

MockMiddlewareMockRecorder is the mock recorder for MockMiddleware.

func (*MockMiddlewareMockRecorder) Process added in v1.2.1

func (mr *MockMiddlewareMockRecorder) Process(ctx any) *gomock.Call

Process indicates an expected call of Process.

type MockResponseWriter added in v1.2.1

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

MockResponseWriter is a mock of ResponseWriter interface.

func NewMockResponseWriter added in v1.2.1

func NewMockResponseWriter(ctrl *gomock.Controller) *MockResponseWriter

NewMockResponseWriter creates a new mock instance.

func (*MockResponseWriter) CloseNotify added in v1.2.1

func (m *MockResponseWriter) CloseNotify() <-chan bool

CloseNotify mocks base method.

func (*MockResponseWriter) EXPECT added in v1.2.1

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockResponseWriter) Flush added in v1.2.1

func (m *MockResponseWriter) Flush()

Flush mocks base method.

func (*MockResponseWriter) Header added in v1.2.1

func (m *MockResponseWriter) Header() http.Header

Header mocks base method.

func (*MockResponseWriter) Hijack added in v1.2.1

func (m *MockResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)

Hijack mocks base method.

func (*MockResponseWriter) Pusher added in v1.2.1

func (m *MockResponseWriter) Pusher() http.Pusher

Pusher mocks base method.

func (*MockResponseWriter) Size added in v1.2.1

func (m *MockResponseWriter) Size() int

Size mocks base method.

func (*MockResponseWriter) Status added in v1.2.1

func (m *MockResponseWriter) Status() int

Status mocks base method.

func (*MockResponseWriter) Write added in v1.2.1

func (m *MockResponseWriter) Write(arg0 []byte) (int, error)

Write mocks base method.

func (*MockResponseWriter) WriteHeader added in v1.2.1

func (m *MockResponseWriter) WriteHeader(statusCode int)

WriteHeader mocks base method.

func (*MockResponseWriter) WriteHeaderNow added in v1.2.1

func (m *MockResponseWriter) WriteHeaderNow()

WriteHeaderNow mocks base method.

func (*MockResponseWriter) WriteString added in v1.2.1

func (m *MockResponseWriter) WriteString(arg0 string) (int, error)

WriteString mocks base method.

func (*MockResponseWriter) Written added in v1.2.1

func (m *MockResponseWriter) Written() bool

Written mocks base method.

type MockResponseWriterMockRecorder added in v1.2.1

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

MockResponseWriterMockRecorder is the mock recorder for MockResponseWriter.

func (*MockResponseWriterMockRecorder) CloseNotify added in v1.2.1

func (mr *MockResponseWriterMockRecorder) CloseNotify() *gomock.Call

CloseNotify indicates an expected call of CloseNotify.

func (*MockResponseWriterMockRecorder) Flush added in v1.2.1

Flush indicates an expected call of Flush.

func (*MockResponseWriterMockRecorder) Header added in v1.2.1

Header indicates an expected call of Header.

func (*MockResponseWriterMockRecorder) Hijack added in v1.2.1

Hijack indicates an expected call of Hijack.

func (*MockResponseWriterMockRecorder) Pusher added in v1.2.1

Pusher indicates an expected call of Pusher.

func (*MockResponseWriterMockRecorder) Size added in v1.2.1

Size indicates an expected call of Size.

func (*MockResponseWriterMockRecorder) Status added in v1.2.1

Status indicates an expected call of Status.

func (*MockResponseWriterMockRecorder) Write added in v1.2.1

func (mr *MockResponseWriterMockRecorder) Write(arg0 any) *gomock.Call

Write indicates an expected call of Write.

func (*MockResponseWriterMockRecorder) WriteHeader added in v1.2.1

func (mr *MockResponseWriterMockRecorder) WriteHeader(statusCode any) *gomock.Call

WriteHeader indicates an expected call of WriteHeader.

func (*MockResponseWriterMockRecorder) WriteHeaderNow added in v1.2.1

func (mr *MockResponseWriterMockRecorder) WriteHeaderNow() *gomock.Call

WriteHeaderNow indicates an expected call of WriteHeaderNow.

func (*MockResponseWriterMockRecorder) WriteString added in v1.2.1

func (mr *MockResponseWriterMockRecorder) WriteString(arg0 any) *gomock.Call

WriteString indicates an expected call of WriteString.

func (*MockResponseWriterMockRecorder) Written added in v1.2.1

Written indicates an expected call of Written.

type MockResponser added in v1.2.1

type MockResponser struct {
	gone.Flag
	// contains filtered or unexported fields
}

MockResponser is a mock of Responser interface.

func NewMockResponser added in v1.2.1

func NewMockResponser(ctrl *gomock.Controller) *MockResponser

NewMockResponser creates a new mock instance.

func (*MockResponser) EXPECT added in v1.2.1

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockResponser) Failed added in v1.2.1

func (m *MockResponser) Failed(ctx XContext, err error)

Failed mocks base method.

func (*MockResponser) ProcessResults added in v1.2.1

func (m *MockResponser) ProcessResults(context XContext, writer ResponseWriter, last bool, funcName string, results ...any)

ProcessResults mocks base method.

func (*MockResponser) Success added in v1.2.1

func (m *MockResponser) Success(ctx XContext, data any)

Success mocks base method.

type MockResponserMockRecorder added in v1.2.1

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

MockResponserMockRecorder is the mock recorder for MockResponser.

func (*MockResponserMockRecorder) Failed added in v1.2.1

func (mr *MockResponserMockRecorder) Failed(ctx, err any) *gomock.Call

Failed indicates an expected call of Failed.

func (*MockResponserMockRecorder) ProcessResults added in v1.2.1

func (mr *MockResponserMockRecorder) ProcessResults(context, writer, last, funcName any, results ...any) *gomock.Call

ProcessResults indicates an expected call of ProcessResults.

func (*MockResponserMockRecorder) Success added in v1.2.1

func (mr *MockResponserMockRecorder) Success(ctx, data any) *gomock.Call

Success indicates an expected call of Success.

type MockXContext added in v1.2.1

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

MockXContext is a mock of XContext interface.

func NewMockXContext added in v1.2.1

func NewMockXContext(ctrl *gomock.Controller) *MockXContext

NewMockXContext creates a new mock instance.

func (*MockXContext) Abort added in v1.2.1

func (m *MockXContext) Abort()

Abort mocks base method.

func (*MockXContext) EXPECT added in v1.2.1

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockXContext) JSON added in v1.2.1

func (m *MockXContext) JSON(code int, obj any)

JSON mocks base method.

func (*MockXContext) String added in v1.2.1

func (m *MockXContext) String(code int, format string, values ...any)

String mocks base method.

type MockXContextMockRecorder added in v1.2.1

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

MockXContextMockRecorder is the mock recorder for MockXContext.

func (*MockXContextMockRecorder) Abort added in v1.2.1

func (mr *MockXContextMockRecorder) Abort() *gomock.Call

Abort indicates an expected call of Abort.

func (*MockXContextMockRecorder) JSON added in v1.2.1

func (mr *MockXContextMockRecorder) JSON(code, obj any) *gomock.Call

JSON indicates an expected call of JSON.

func (*MockXContextMockRecorder) String added in v1.2.1

func (mr *MockXContextMockRecorder) String(code, format any, values ...any) *gomock.Call

String indicates an expected call of String.

type MountError

type MountError = g.MountError

type OriginContent

type OriginContent = gin.Context

type Query added in v1.3.0

type Query[T any] struct {
	// contains filtered or unexported fields
}

func (*Query[T]) Get added in v1.3.0

func (q *Query[T]) Get() T

type RequestBody added in v1.3.0

type RequestBody[T any] struct {
	// contains filtered or unexported fields
}

func (*RequestBody[T]) Get added in v1.3.0

func (r *RequestBody[T]) Get() T

type ResponseWriter

type ResponseWriter = gin.ResponseWriter

type Responser

type Responser interface {
	Success(ctx XContext, data any)
	Failed(ctx XContext, err error)
	ProcessResults(context XContext, writer gin.ResponseWriter, last bool, funcName string, results ...any)
}

Responser Response handler Inject default response handler using Id: gone-gin-responser (`gone.IdGoneGinResponser`)

type RouteGroup

type RouteGroup interface {
	IRouter
}

RouteGroup route group, which is a wrapper of gin.RouterGroup, and can be injected for mount router.

type RouterGroupName

type RouterGroupName string

RouterGroupName Router group name

type SSE

type SSE interface {
	Start()
	Write(delta any) error
	End() error
}

func NewSSE

func NewSSE(writer gin.ResponseWriter) SSE

type Sse

type Sse struct {
	Writer gin.ResponseWriter
}

func (*Sse) End

func (s *Sse) End() error

func (*Sse) Start

func (s *Sse) Start()

func (*Sse) Write

func (s *Sse) Write(delta any) error

type SysMiddleware

type SysMiddleware struct {
	gone.Flag
	// contains filtered or unexported fields
}

SysMiddleware system middleware

func (*SysMiddleware) GonerName

func (m *SysMiddleware) GonerName() string

func (*SysMiddleware) Init

func (m *SysMiddleware) Init() error

func (*SysMiddleware) Process

func (m *SysMiddleware) Process(ginCtx *gin.Context)

type WrappedDataFunc

type WrappedDataFunc func(code int, msg string, data any) any

type WrappedDataFuncSetter

type WrappedDataFuncSetter interface {
	SetWrappedDataFunc(wrappedDataFunc WrappedDataFunc)
}

type XContext

type XContext interface {
	JSON(code int, obj any)
	String(code int, format string, values ...any)
	Abort()
}

Directories

Path Synopsis
Package injector is a generated GoMock package.
Package injector is a generated GoMock package.
internal

Jump to

Keyboard shortcuts

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