Documentation
¶
Overview ¶
Package result 提供了一套用于描述向客户端反馈错误信息的机制。
Index ¶
- func LocaleMessages(p *xmessage.Printer) map[int]string
- func Messages() map[int]string
- func NewMessage(code int, msg string) error
- func NewMessages(msgs map[int]string) error
- func NewStatusMessage(status, code int, msg string) error
- func NewStatusMessages(status int, msgs map[int]string) error
- type Result
- func (rslt *Result) Add(field, message string) *Result
- func (rslt *Result) Exit(ctx *context.Context)
- func (rslt *Result) HasDetail() bool
- func (rslt *Result) MarshalForm() ([]byte, error)
- func (rslt *Result) Render(ctx *context.Context)
- func (rslt *Result) SetDetail(fields map[string]string) *Result
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LocaleMessages ¶
LocaleMessages 本化地的错误信息列表
func NewMessage ¶
NewMessage 注册一条新的错误信息。
功能与 NewStatusMessage 相同,但相较于 NewStatusMessage 函数, 少了一个表示 HTTP 状态码的 status 参数。 NewMessage 中的状态码根据 code 的计算而来,将 code 一直被 10 相除, 真到值介于 100-999 之间,取该值作为 HTTP 状态码。 不判断该状态码是否真实存在于 RFC 定义中。
func NewStatusMessage ¶
NewStatusMessage 添加一条错误信息
status 指定了该错误代码反馈给客户端的 HTTP 状态码 code 表示的是该错误的错误代码。 msg 表示具体的错误描述内容。
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) MarshalForm ¶
MarshalForm 为 form.Marshaler 接口实现。用于将 result 对象转换成 form 数据格式
Click to show internal directories.
Click to hide internal directories.