server

package
v0.58.0 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2022 License: MIT Imports: 39 Imported by: 2

Documentation

Overview

Package server 服务管理

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsValidID added in v0.52.0

func IsValidID(id string) bool

IsValidID 是否为合法的 ID

ID 只能是字母、数字、_ 以及 -

Types

type BuildProblemFunc added in v0.55.0

type BuildProblemFunc func(id, title string, status int) Problem

BuildProblemFunc 生成 Problem 对象的方法

id 表示当前错误信息的唯一值,这将是一个标准的 URL,指向线上的文档地址,有可能不会真实存在; title 错误信息的简要描述; status 输出的状态码;

type CTXSanitizer

type CTXSanitizer interface {
	// CTXSanitize 验证和修正当前对象的数据
	//
	// 如果要保存验证的结果,应该调用传递的 [Validation] 对象的方法。
	CTXSanitize(*Context, *Validation)
}

CTXSanitizer 在 Context 关联的上下文环境中对数据进行验证和修正

Context.ReadContext.QueryObject 以及 Queries.Object 中会在解析数据成功之后会调用该接口。

type Context

type Context struct {

	// 保存 Context 在存续期间的可复用变量
	//
	// 这是比 context.Value 更经济的传递变量方式,但是这并不是协程安全的。
	Vars map[any]any
	// contains filtered or unexported fields
}

Context 根据当次 HTTP 请求生成的上下文内容

Context 同时也实现了 http.ResponseWriter 接口, 但是不推荐非必要情况下直接使用 http.ResponseWriter 的接口方法, 而是采用返回 Responser 的方式向客户端输出内容。

func (*Context) Body

func (ctx *Context) Body() (body []byte, err error)

Body 获取用户提交的内容

相对于 Context.Request().Body,此函数可多次读取。不存在 body 时,返回 nil

func (*Context) ClientIP

func (ctx *Context) ClientIP() string

ClientIP 返回客户端的 IP 地址及端口

获取顺序如下:

  • X-Forwarded-For 的第一个元素
  • Remote-Addr 报头
  • X-Read-IP 报头

func (*Context) Error

func (ctx *Context) Error(id string, level logs.Level, err error) Problem

Error 将 err 输出到日志并以指定 id 的 Problem 返回

func (*Context) Header added in v0.48.0

func (ctx *Context) Header() http.Header

func (*Context) InternalServerError added in v0.49.0

func (ctx *Context) InternalServerError(err error) Problem

InternalServerError 输出 ERROR 通道并向返回 500 表示的 Problem 对象

func (*Context) IsXHR added in v0.44.0

func (ctx *Context) IsXHR() bool

func (*Context) LanguageTag added in v0.49.0

func (ctx *Context) LanguageTag() language.Tag

func (*Context) LocalePrinter

func (ctx *Context) LocalePrinter() *message.Printer

func (*Context) Location

func (ctx *Context) Location() *time.Location

func (*Context) Logs added in v0.44.0

func (ctx *Context) Logs() *logs.Logs

func (*Context) Marshal

func (ctx *Context) Marshal(status int, body any, problem bool) error

Marshal 向客户端输出内容

status 想输出给用户状态码,如果出错,那么最终展示给用户的状态码可能不是此值; body 表示输出的对象,该对象最终调用 ctx.outputMimetype 编码; problem 表示 body 是否为 Problem 对象,对于 Problem 对象可能会有特殊的处理;

func (*Context) NotFound

func (ctx *Context) NotFound() Problem

NotFound 返回 id 值为 404 的 Problem 对象

func (*Context) NotImplemented

func (ctx *Context) NotImplemented() Problem

func (*Context) Now

func (ctx *Context) Now() time.Time

Now 返回以 Context.Location 为时区的当前时间

func (*Context) OnExit added in v0.49.0

func (ctx *Context) OnExit(f func(int))

OnExit 注册退出当前请求时的处理函数

f 为退出时的处理方法,其原型为:

func(status int)

其中 status 为最终输出到客户端的状态码。

func (*Context) ParamID

func (ctx *Context) ParamID(key, id string) (int64, Responser)

ParamID 获取地址参数中表示 key 的值并并转换成大于 0 的 int64

NOTE: 若需要获取多个参数,使用 Context.Params 会更方便。

func (*Context) ParamInt64

func (ctx *Context) ParamInt64(key, id string) (int64, Responser)

ParamInt64 取地址参数中的 key 表示的值并尝试工转换成 int64 类型

NOTE: 若需要获取多个参数,可以使用 Context.Params 获取会更方便。

func (*Context) ParamString

func (ctx *Context) ParamString(key, id string) (string, Responser)

ParamString 取地址参数中的 key 表示的值并尝试工转换成 string 类型

NOTE: 若需要获取多个参数,可以使用 Context.Params 获取会更方便。

func (*Context) Params

func (ctx *Context) Params(exitAtError bool) *Params

Params 声明一个用于获取路径参数的对象

返回对象的生命周期在 Context 结束时也随之结束。

func (*Context) ParseTime

func (ctx *Context) ParseTime(layout, value string) (time.Time, error)

ParseTime 分析基于当前时区的时间

func (*Context) Problem added in v0.55.0

func (ctx *Context) Problem(id string) Problem

Problem 返回批定 id 的错误信息

id 通过此值从 Problems 中查找相应在的 title 并赋值给返回对象;

func (*Context) Queries

func (ctx *Context) Queries(exitAtError bool) (*Queries, error)

Queries 声明一个用于获取查询参数的对象

返回对象的生命周期在 Context 结束时也随之结束。

func (*Context) QueryObject

func (ctx *Context) QueryObject(exitAtError bool, v any, id string) Responser

QueryObject 将查询参数解析到一个对象中

func (*Context) Read

func (ctx *Context) Read(exitAtError bool, v any, id string) Responser

Read 从客户端读取数据并转换成 v 对象

如果 v 实现了 CTXSanitizer 接口,则在读取数据之后,会调用其接口函数。 如果验证失败,会输出以 id 作为错误代码的 Responser 对象。

func (*Context) Request

func (ctx *Context) Request() *http.Request

Request 返回原始的请求对象

func (*Context) Route added in v0.55.3

func (ctx *Context) Route() types.Route

func (*Context) Server

func (ctx *Context) Server() *Server

Server 获取关联的 Server 实例

func (*Context) SetLanguage added in v0.49.0

func (ctx *Context) SetLanguage(l string) error

SetLanguage 设置输出的语言

默认情况下,会根据用户提交的 Accept-Language 报头设置默认值。

func (*Context) SetLocation added in v0.49.0

func (ctx *Context) SetLocation(name string) error

SetLocation 设置时区信息

name 为时区名称,比如 'America/New_York',具体说明可参考 time.LoadLocation

func (*Context) Sprintf

func (ctx *Context) Sprintf(key message.Reference, v ...any) string

Sprintf 返回翻译后的结果

func (*Context) Unmarshal

func (ctx *Context) Unmarshal(v any) error

Unmarshal 将提交的内容转换成 v 对象

func (*Context) Write added in v0.48.0

func (ctx *Context) Write(bs []byte) (int, error)

func (*Context) WriteHeader added in v0.48.0

func (ctx *Context) WriteHeader(status int)

type Encodings added in v0.55.1

type Encodings interface {
	// Add 添加压缩算法
	//
	// id 表示当前算法的唯一名称,在 Allow 中可以用来查找使用;
	// name 表示通过 Accept-Encoding 匹配的名称;
	// f 表示生成压缩对象的方法;
	Add(id, name string, f NewEncodingFunc)

	// Allow 允许 contentType 采用的压缩方式
	//
	// id 是指由 Add 中指定的值;
	// contentType 表示经由 Accept-Encoding 提交的值,该值不能是 identity 和 *;
	//
	// 如果未添加任何算法,则每个请求都相当于是 identity 规则。
	Allow(contentType string, id ...string)
}

type HandlerFunc

type HandlerFunc func(*Context) Responser

HandlerFunc 路由项处理函数原型

type Middleware added in v0.48.0

type Middleware = types.MiddlewareOf[HandlerFunc]

type MiddlewareFunc added in v0.48.0

type MiddlewareFunc = types.MiddlewareFuncOf[HandlerFunc]

type Module

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

func (*Module) AppendFS added in v0.56.0

func (m *Module) AppendFS(fsys ...fs.FS)

AppendFS 添加文件系统

Module 默认以 id 为名称相对于 Server 创建了一个文件系统。 此操作会将 fsys 作为 Module 的另一个文件系统与 Module 相关联, 当查找文件时,会依次以添加的相反顺序查找相应的文件系统,直到找到或是结束。

func (*Module) BuildID added in v0.51.1

func (m *Module) BuildID(suffix string) string

BuildID 根据当前模块的 ID 生成一个新的 ID

func (*Module) Cache added in v0.48.0

func (m *Module) Cache() cache.Access

Cache 获取缓存对象

该缓存对象的 key 会自动添加 Module.ID 作为其前缀。

func (*Module) Description

func (m *Module) Description() localeutil.LocaleStringer

Description 模块的描述信息

func (*Module) FileServer added in v0.48.0

func (m *Module) FileServer(name, index string) HandlerFunc

FileServer 返回以当前模块作为文件系统的静态文件服务

参数与 Server.FileServer 相同,仅文件系统强制使用当前模块。

func (*Module) Glob added in v0.48.0

func (m *Module) Glob(pattern string) ([]string, error)

Glob 实现 fs.GlobFS 接口

查找到第一个返回非空集合即停止。

func (*Module) ID

func (m *Module) ID() string

ID 模块的唯一 ID

func (*Module) LoadLocale added in v0.41.0

func (m *Module) LoadLocale(glob string) error

LoadLocale 加载当前模块文件系统下的本地化文件

func (*Module) Open added in v0.41.0

func (m *Module) Open(name string) (fs.File, error)

func (*Module) Server added in v0.40.0

func (m *Module) Server() *Server

type NewEncodingFunc added in v0.55.0

type NewEncodingFunc = encoding.NewEncodingFunc

func EncodingBrotli added in v0.55.1

func EncodingBrotli(o brotli.WriterOptions) NewEncodingFunc

EncodingBrotli 返回指定配置的 br 算法

func EncodingCompress added in v0.55.1

func EncodingCompress(order lzw.Order, width int) NewEncodingFunc

EncodingCompress 返回指定配置的 compress 算法

func EncodingDeflate added in v0.55.1

func EncodingDeflate(level int) NewEncodingFunc

EncodingDeflate 返回指定配置的 deflate 算法

func EncodingGZip added in v0.55.1

func EncodingGZip(level int) NewEncodingFunc

EncodingGZip 返回指定配置的 gzip 算法

type Options

type Options struct {
	// 项目默认可存取的文件系统
	//
	// 默认情况下为可执行文件所在的目录。
	FS fs.FS

	// 服务器的时区
	//
	// 默认值为 time.Local
	Location *time.Location

	// 缓存系统
	//
	// 默认值为内存类型。
	Cache cache.Cache

	// 日志的输出通道设置
	//
	// 如果此值为空,那么在被初始化 logs.New(nil) 值,表示不会输出到任何通道。
	Logs *logs.Logs

	// 生成 [Problem] 对象的方法
	//
	// 如果为空,那么将采用 [RFC7807Builder] 作为默认值。
	ProblemBuilder BuildProblemFunc

	// 默认的语言标签
	//
	// 在用户请求的报头中没有匹配的语言标签时,会采用此值作为该用户的本地化语言,
	// 同时也用来初始化 [Server.LocalePrinter]。
	//
	// 如果为空,则会尝试读取当前系统的本地化信息。
	LanguageTag language.Tag

	// http.Server 实例的值
	//
	// 如果为空,表示 &http.Server{} 对象。
	HTTPServer *http.Server
}

type Params

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

func (*Params) Bool

func (p *Params) Bool(key string) bool

Bool 获取参数 key 所代表的值并转换成 bool

strconv.ParseBool 进行转换。

func (*Params) Float64

func (p *Params) Float64(key string) float64

Float64 获取参数 key 所代表的值并转换成 float64

func (*Params) ID

func (p *Params) ID(key string) int64

ID 返回 key 所表示的值且必须大于 0

func (*Params) Int64

func (p *Params) Int64(key string) int64

Int64 获取参数 key 所代表的值并转换成 int64 类型

func (*Params) Problem added in v0.55.0

func (p *Params) Problem(id string) Responser

Problem 将当前对象转换成 Problem 对象

仅在处理参数时有错误的情况下,才会转换成 Problem 对象,否则将返回空值。

func (*Params) String

func (p *Params) String(key string) string

String 获取参数 key 所代表的值并转换成 string

type Problem added in v0.55.0

type Problem interface {
	Responser

	// With 添加新的输出字段
	//
	// 如果添加的字段名称与现有的字段重名,应当 panic。
	With(key string, val any) Problem

	// AddParam 添加数据验证错误信息
	AddParam(name string, reason string) Problem
}

Problem API 错误信息对象需要实现的接口

Problem 是对 Responser 细化,用于反馈给用户非正常状态下的数据, 比如用户提交的数据错误,往往会返回 400 的状态码, 并附带一些具体的字段错误信息,此类数据都可以以 Problem 对象的方式反馈给用户。

除了当前接口,该对象可能还要实现相应的序列化接口,比如要能被 JSON 解析, 就要实现 json.Marshaler 接口或是相应的 struct tag。

并未规定实现者输出的字段名和布局,实现者可以根据 BuildProblemFunc 给定的参数,结合自身需求决定。比如 RFC7807Builder 是对 RFC7807 的实现。

func RFC7807Builder added in v0.55.0

func RFC7807Builder(id, title string, status int) Problem

RFC7807Builder BuildProblemFuncRFC7807 标准实现

NOTE: 由于 www-form-urlencoded 对复杂对象的表现能力有限, 在此模式下将忽略由 [Problem.With] 添加的复杂类型,只保留基本类型。

type Problems added in v0.55.0

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

func (*Problems) Add added in v0.55.0

func (p *Problems) Add(id string, status int, title, detail localeutil.LocaleStringer) *Problems

Add 添加新的错误类型

id 表示该错误的唯一值,如果存在相同会 panic; Problems.Problem 会根据此值查找相应的文字说明给予 title 字段; status 表示输出给客户端的状态码; title 和 detail 表示此 id 关联的简要说明和详细说明;

func (*Problems) AddMimetype added in v0.55.0

func (p *Problems) AddMimetype(mimetype, problemType string) *Problems

AddMimetype 指定 mimetype 对应的 Problem 时的 content-type 值

mimetype 为正常情况下的 content-type 值,当输出对象为 Problem 时, 可以指定一个特殊的值,比如 application/json 可以对应输出 application/problem+json, 这也是 RFC7807 推荐的作法。

func (*Problems) BaseURL added in v0.55.0

func (p *Problems) BaseURL() string

BaseURL BuildProblemFunc 参数 id 的前缀

返回的内容说明,可参考 Problems.SetBaseURL

func (*Problems) Problem added in v0.55.0

func (p *Problems) Problem(printer *message.Printer, id string) Problem

Problem 根据 id 生成 Problem 对象

func (*Problems) Set added in v0.58.0

func (p *Problems) Set(id string, status int, title, detail localeutil.LocaleStringer) *Problems

Set 添加或是修改错误信息

Problems.Add 的不同在于:如果 id 已经存在,此方法会作修改,而 Add 则会 panic。

func (*Problems) SetBaseURL added in v0.55.0

func (p *Problems) SetBaseURL(base string)

SetBaseURL 设置传递给 BuildProblemFunc 中 id 参数的前缀

Problem 实现者可以根据自由决定 id 字终以什么形式展示, 此处的设置只是决定了传递给 BuildProblemFunc 的 id 参数格式。 可以有以下三种形式:

  • 空值 不作任何改变;
  • about:blank 将传递空值给 BuildProblemFunc
  • 其它非空值 以前缀形式附加在原本的 id 之上;

func (*Problems) Visit added in v0.55.0

Visit 遍历所有由 Problems.Add 添加的项

f 为遍历的函数,其原型为:

func(id string, status int, title, detail localeutil.LocaleStringer)

分别对应 Problems.Add 添加时的各个参数。

用户可以通过此方法生成 QA 页面。

type Queries

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

func (*Queries) Bool

func (q *Queries) Bool(key string, def bool) bool

Bool 从查询参数中获取指定名称的值

若不存在则返回 def 作为其默认值。若是无法转换,则会保存错误信息并返回 def。

func (*Queries) Float64

func (q *Queries) Float64(key string, def float64) float64

Float64 从查询参数中获取指定名称的值

若不存在则返回 def 作为其默认值。若是无法转换,则会保存错误信息并返回 def。

func (*Queries) Int

func (q *Queries) Int(key string, def int) int

Int 从查询参数中获取指定名称的值

若不存在则返回 def 作为其默认值。若是无法转换,则会保存错误信息并返回 def。

func (*Queries) Int64

func (q *Queries) Int64(key string, def int64) int64

Int64 从查询参数中获取指定名称的值

若不存在则返回 def 作为其默认值。若是无法转换,则会保存错误信息并返回 def。

func (*Queries) Object

func (q *Queries) Object(v any, id string)

Object 将查询参数解析到一个对象中

具体的文档信息可以参考 https://github.com/issue9/query

如果 v 实现了 CTXSanitizer 接口,则在读取数据之后,会调用其接口函数。

func (*Queries) Problem added in v0.55.0

func (q *Queries) Problem(id string) Responser

Problem 将当前对象转换成 Problem 对象

仅在处理参数时有错误的情况下,才会转换成 Problem 对象,否则将返回空值。

func (*Queries) String

func (q *Queries) String(key, def string) string

String 从查询参数中获取指定名称的值

若不存在则返回 def 作为其默认值。

type Responser added in v0.40.0

type Responser interface {
	// Apply 通过 [Context] 将当前内容渲染到客户端
	//
	// 在调用 Apply 之后,就不再使用 Responser 对象,
	// 如果你的对象支持 sync.Pool 复用,可以在 Apply 退出之际回收。
	Apply(*Context)
}

Responser 表示向客户端输出对象最终需要实现的接口

type ResponserFunc added in v0.55.0

type ResponserFunc func(*Context)

func (ResponserFunc) Apply added in v0.55.0

func (f ResponserFunc) Apply(c *Context)

type Router

type Router = mux.RouterOf[HandlerFunc]

type Routers added in v0.48.0

type Routers = group.GroupOf[HandlerFunc]

type Rule added in v0.57.0

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

func NewRule added in v0.57.0

func NewRule(message localeutil.LocaleStringer, validator Validator) *Rule

NewRule 声明一条验证规则

message 表示在验证出错时的错误信息; validator 为验证方法;

func NewRuleFunc added in v0.57.0

func NewRuleFunc(message localeutil.LocaleStringer, f func(any) bool) *Rule

type Server

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

Server web 服务对象

func New

func New(name, version string, o *Options) (*Server, error)

New 返回 *Server 实例

name, version 表示服务的名称和版本号; o 指定了初始化 Server 一些非必要参数。

func (*Server) Cache

func (srv *Server) Cache() cache.Cache

Cache 返回缓存的相关接口

func (*Server) CatalogBuilder added in v0.55.0

func (srv *Server) CatalogBuilder() *catalog.Builder

func (*Server) Close

func (srv *Server) Close(shutdownTimeout time.Duration) error

Close 触发关闭操作

需要等待 Server.Serve 返回才能证明整个服务被关闭。

func (*Server) Encodings added in v0.48.0

func (srv *Server) Encodings() Encodings

Encodings 返回压缩编码管理

func (*Server) FileServer added in v0.44.0

func (srv *Server) FileServer(fsys fs.FS, name, index string) HandlerFunc

FileServer 构建静态文件服务对象

fsys 为文件系统,如果为空则采用 Server 本身; name 表示参数名称; index 表示目录下的默认文件名;

func (*Server) Files added in v0.41.0

func (srv *Server) Files() serializer.FS

Files 返回用于序列化文件内容的操作接口

func (*Server) LanguageTag added in v0.56.0

func (srv *Server) LanguageTag() language.Tag

LanguageTag 返回默认的语言标签

func (*Server) LoadLocale added in v0.55.0

func (srv *Server) LoadLocale(fsys fs.FS, glob string) error

LoadLocale 加载本地化的文件

func (*Server) LocalePrinter added in v0.41.0

func (srv *Server) LocalePrinter() *message.Printer

func (*Server) Location

func (srv *Server) Location() *time.Location

Location 指定服务器的时区信息

func (*Server) Logs

func (srv *Server) Logs() *logs.Logs

Logs 返回关联的 logs.Logs 实例

func (*Server) Mimetypes

func (srv *Server) Mimetypes() serializer.Serializer

Mimetypes 编解码控制

func (*Server) Modules

func (srv *Server) Modules(p *message.Printer) map[string]string

Modules 所有模块的列表

func (*Server) Name

func (srv *Server) Name() string

Name 应用的名称

func (*Server) NewModule added in v0.40.0

func (srv *Server) NewModule(id string, desc localeutil.LocaleStringer) *Module

NewModule 声明新的模块

id 模块的 ID,需要全局唯一,只能是字母、数字以及下划线。

func (*Server) NewPrinter added in v0.55.0

func (srv *Server) NewPrinter(tag language.Tag) *message.Printer

func (*Server) Now

func (srv *Server) Now() time.Time

Now 返回当前时间

time.Now 的区别在于 Now() 基于当前时区

func (*Server) OnClose added in v0.44.0

func (srv *Server) OnClose(f ...func() error)

OnClose 注册关闭服务时需要执行的函数

NOTE: 按注册的相反顺序执行。

func (*Server) Open

func (srv *Server) Open(name string) (fs.File, error)

func (*Server) ParseTime

func (srv *Server) ParseTime(layout, value string) (time.Time, error)

ParseTime 分析基于当前时区的时间

func (*Server) Problems added in v0.55.0

func (srv *Server) Problems() *Problems

func (*Server) Routers added in v0.44.0

func (srv *Server) Routers() *Routers

Routers 路由管理接口

func (*Server) Serve

func (srv *Server) Serve() (err error)

Serve 启动服务

会等待 Server.Close 执行完之后,此函数才会返回,这一点与 http.ListenAndServe 稍有不同。 一旦返回,整个 Server 对象将处于不可用状态。

func (*Server) Services

func (srv *Server) Services() *service.Server

Services 服务管理

func (*Server) Uptime

func (srv *Server) Uptime() time.Time

Uptime 当前服务的运行时间

func (*Server) Vars added in v0.42.0

func (srv *Server) Vars() *sync.Map

Vars 操纵共享变量的接口

func (*Server) Version

func (srv *Server) Version() string

Version 应用的版本

type ValidateFunc added in v0.57.0

type ValidateFunc func(any) bool

ValidateFunc 用于验证指定数据的合法性

func (ValidateFunc) IsValid added in v0.57.0

func (f ValidateFunc) IsValid(v any) bool

type Validation added in v0.56.0

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

Validation 数据验证工具

func (*Validation) Add added in v0.57.0

func (v *Validation) Add(name string, reason localeutil.LocaleStringer) *Validation

Add 直接添加一条错误信息

func (*Validation) AddField added in v0.56.0

func (v *Validation) AddField(val any, name string, rules ...*Rule) *Validation

AddField 验证新的字段

val 表示需要被验证的值; name 表示当前字段的名称,当验证出错时,以此值作为名称返回给用户; rules 表示验证的规则,按顺序依次验证。

func (*Validation) AddMapField added in v0.56.0

func (v *Validation) AddMapField(val any, name string, rules ...*Rule) *Validation

AddMapField 验证 map 字段

如果字段类型不是 map,将添加一条错误信息,并退出验证。

func (*Validation) AddSliceField added in v0.56.0

func (v *Validation) AddSliceField(val any, name string, rules ...*Rule) *Validation

AddSliceField 验证数组字段

如果字段类型不是数组或是字符串,将添加一条错误信息,并退出验证。

func (*Validation) Count added in v0.57.0

func (v *Validation) Count() int

func (*Validation) Problem added in v0.56.0

func (v *Validation) Problem(id string) Problem

Problem 转换成 Problem 对象

如果当前对象没有收集到错误,那么将返回 nil。

func (*Validation) When added in v0.56.0

func (v *Validation) When(cond bool, f func(v *Validation)) *Validation

When 只有满足 cond 才执行 f 中的验证

f 中的 v 即为当前对象;

type Validator added in v0.57.0

type Validator interface {
	IsValid(v any) bool
}

Validator 用于验证指定数据的合法性

func AndValidateFunc added in v0.57.0

func AndValidateFunc(f ...func(any) bool) Validator

func AndValidator added in v0.57.0

func AndValidator(v ...Validator) Validator

AndValidator 将多个验证函数以与的形式合并为一个验证函数

func OrValidateFunc added in v0.57.0

func OrValidateFunc(f ...func(any) bool) Validator

func OrValidator added in v0.57.0

func OrValidator(v ...Validator) Validator

OrValidator 将多个验证函数以或的形式合并为一个验证函数

Directories

Path Synopsis
Package servertest 针对 server 的测试用例
Package servertest 针对 server 的测试用例

Jump to

Keyboard shortcuts

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