scaffold

package module
v1.5.10 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

README

Scaffold

  • Scaffolding for quickly building web services based on gin and zap
install
go get -u github.com/wuruipeng404/scaffold@v1.5.6
Usage

package main

import (
	"context"
	"github.com/gin-gonic/gin"
	"github.com/wuruipeng404/scaffold"
	"github.com/wuruipeng404/scaffold/logger"
	"github.com/wuruipeng404/scaffold/orm"
	"sync"
)

func init() {
	logger.InitLogger() // only os.stdout

	logger.InitPersistenceLogger("./some_logfile")
}

func main() {
	server := scaffold.NewGraceServer(":8000", gin.Default())

	server.AddBackgroundTask(func(ctx context.Context, wg *sync.WaitGroup) {
		// some background task like cronjob
	})

	server.AddDeferFunc(func() {
		// resource recycle
		logger.Debugf("exit")
	})
	server.Start()
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Cors added in v0.2.0

func Cors() gin.HandlerFunc

Cors 处理跨域请求

func DefaultAllowHeaders added in v0.2.0

func DefaultAllowHeaders() []string

func DefaultCorsMap added in v0.2.0

func DefaultCorsMap() map[string]string

func GracefulLogger added in v1.0.2

func GracefulLogger() gin.HandlerFunc

func NewCors added in v0.2.0

func NewCors(headers map[string]string) gin.HandlerFunc

func NewCorsWithDefault added in v0.2.0

func NewCorsWithDefault(headers map[string]string) gin.HandlerFunc

Types

type ApiPage added in v1.2.1

type ApiPage struct {
	TotalCount int64  `json:"total_count"`          // 列表数据总数
	TotalPage  int64  `json:"total_page,omitempty"` // 列表页总数
	PageCount  int64  `json:"page_count"`           // 当前页数量
	PageIndex  int64  `json:"page_index"`           // 当前页码
	Sort       string `json:"sort,omitempty"`       // 排序
}

type ApiResponse added in v0.2.0

type ApiResponse struct {
	Code    int    `json:"code"`
	Msg     string `json:"msg"`
	Data    any    `json:"data,omitempty"`
	ApiPage `json:",inline"`
}

type BeautyController added in v0.1.16

type BeautyController struct{}

func (*BeautyController) Failed added in v0.2.0

func (c *BeautyController) Failed(ctx *gin.Context, ie er.IError)

Failed with IError

func (*BeautyController) FailedC added in v1.2.6

func (c *BeautyController) FailedC(ctx *gin.Context, code int, message string)

FailedC with custom code and message

func (*BeautyController) FailedD added in v1.2.5

func (c *BeautyController) FailedD(ctx *gin.Context, ie er.IError, data any)

FailedD with IError and Data

func (*BeautyController) FailedDyn added in v1.2.0

func (c *BeautyController) FailedDyn(ctx *gin.Context, ie er.IError, err error)

FailedDyn join IError message adn dynamic raw error message

func (*BeautyController) FailedE added in v1.2.0

func (c *BeautyController) FailedE(ctx *gin.Context, err error)

FailedE with default code and raw error

func (*BeautyController) OK added in v0.2.0

func (c *BeautyController) OK(ctx *gin.Context, data any)

OK response with data

func (*BeautyController) PageOk added in v1.2.1

func (c *BeautyController) PageOk(ctx *gin.Context, data any, page ApiPage)

PageOk response with page data

func (*BeautyController) PureOK added in v0.2.0

func (c *BeautyController) PureOK(ctx *gin.Context)

PureOK only http code 200

func (*BeautyController) RawOK added in v0.2.0

func (c *BeautyController) RawOK(ctx *gin.Context, data any)

RawOK without code msg

type GraceServer

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

func NewGraceServer

func NewGraceServer(listen string, engine *gin.Engine) *GraceServer

func (*GraceServer) AddBackgroundTask added in v0.1.1

func (g *GraceServer) AddBackgroundTask(tasks ...func(ctx context.Context, wg *sync.WaitGroup))

AddBackgroundTask append background goroutine and when server exit will wait then the task finish need call wg.Done()

func (*GraceServer) AddDeferFunc added in v0.1.3

func (g *GraceServer) AddDeferFunc(tasks ...func())

func (*GraceServer) Start

func (g *GraceServer) Start()

Start no stop method, because no need for

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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