GinのContext
Abort
Context.Abort
以降のHandlerの実行を中止。
Logだけ実行したいが?
とりあえず、Loggerミドルウェアではなく、直接Loggingを実行してみる。
AbortWithError
func (c *Context) AbortWithError(code int, err error) *Error
errorをプッシュできる
レスポンスステータスと、errメッセージを出力する形になる?
c.Errorsはtype errorMsgs []*Error
c.JSONで指定していたものは上書きされそう。
Context.Error
func (c *Context) Error(err error) *Error
ErrorをContextにアタッチできる
様々なミドルウェアで、レスポンスやロギングなどにおいて有用
nilのerrorを渡すとpanic
Error.Unwrap
err := gerr.Unwrap()
注意
gin.ErrorにラップされたErrorは、errorsパッケージのUnwrapでは取り出せない
専用のError.Unwrapを使う。
Get
func (c *Context) Get(key string) (value interface{}, exists bool)
キーが存在しない場合、nil, falseをreturn
MustGet
func (c *Context) MustGet(key string) interface{}
キーが存在しない場合、panic