result

package
v0.16.3 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2018 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package result 提供了一套用于描述向客户端反馈错误信息的机制。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LocaleMessages

func LocaleMessages(p *xmessage.Printer) map[int]string

LocaleMessages 本化地的错误信息列表

func Messages

func Messages() map[int]string

Messages 错误信息列表

若需要特定语言的内容,可以调用 LocaleMessages() 函数获取。

func NewMessage

func NewMessage(code int, msg string) error

NewMessage 注册一条新的错误信息。

功能与 NewStatusMessage 相同,但相较于 NewStatusMessage 函数, 少了一个表示 HTTP 状态码的 status 参数。 NewMessage 中的状态码根据 code 的计算而来,将 code 一直被 10 相除, 真到值介于 100-999 之间,取该值作为 HTTP 状态码。 不判断该状态码是否真实存在于 RFC 定义中。

func NewMessages

func NewMessages(msgs map[int]string) error

NewMessages 注册错误代码。

func NewStatusMessage

func NewStatusMessage(status, code int, msg string) error

NewStatusMessage 添加一条错误信息

status 指定了该错误代码反馈给客户端的 HTTP 状态码 code 表示的是该错误的错误代码。 msg 表示具体的错误描述内容。

func NewStatusMessages

func NewStatusMessages(status int, msgs map[int]string) error

NewStatusMessages 添加一组错误信息。

Types

type Result

type Result struct {
	XMLName struct{} `json:"-" xml:"result" yaml:"-"`

	// 当前的信息所对应的 HTTP 状态码
	Status int `json:"-" xml:"-" yaml:"-"`

	Message string    `json:"message" xml:"message,attr" yaml:"message"`
	Code    int       `json:"code" xml:"code,attr" yaml:"code"`
	Detail  []*detail `json:"detail,omitempty" xml:"field,omitempty" yaml:"detail,omitempty"`
}

Result 定义了出错时,向客户端返回的结构体。支持以下格式:

JSON:

{
    'message': 'error message',
    'code': 4000001,
    'detail':[
        {'field': 'username': 'message': '已经存在相同用户名'},
        {'field': 'username': 'message': '已经存在相同用户名'},
    ]
}

XML:

<result code="400" message="error message">
    <field name="username">已经存在相同用户名</field>
    <field name="username">已经存在相同用户名</field>
</result>

YAML:

message: 'error message'
code: 40000001
detail:
  - field: username
    message: 已经存在相同用户名
  - field: username
    message: 已经存在相同用户名

FormData:

message=errormessage&code=4000001&detail.username=message&detail.username=message

func (*Result) Add

func (rslt *Result) Add(field, message string) *Result

Add 添加一条详细的错误信息。

若 field 与已有的同名,会出现多条同名记录。

func (*Result) Error added in v0.16.3

func (rslt *Result) Error() string

func (*Result) Exit

func (rslt *Result) Exit(ctx *context.Context)

Exit 将当前的实例输出到客户端,并退出当前请求

func (*Result) HasDetail

func (rslt *Result) HasDetail() bool

HasDetail 是否包含详细的错误信息

func (*Result) MarshalForm

func (rslt *Result) MarshalForm() ([]byte, error)

MarshalForm 为 form.Marshaler 接口实现。用于将 result 对象转换成 form 数据格式

func (*Result) Render

func (rslt *Result) Render(ctx *context.Context)

Render 将当前的实例输出到客户端

func (*Result) SetDetail

func (rslt *Result) SetDetail(fields map[string]string) *Result

SetDetail 设置详细的错误信息

会覆盖由 Add() 添加的内容

Jump to

Keyboard shortcuts

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