30 lines
1.0 KiB
Plaintext
30 lines
1.0 KiB
Plaintext
syntax = "v1"
|
||
|
||
// 文件與實際 HTTP 回應共用結構(handler 透過 response.Write 輸出)
|
||
// HTTP 狀態碼對照 errs.Error.HTTPStatus()(internal/library/errors/errors.go)
|
||
// 業務碼格式 SSCCCDDD(scope * 1_000_000 + category * 1_000 + detail)
|
||
// Facade scope=10(handler parse/validate):10101000 = InputInvalidFormat
|
||
// Auth scope=28、Member scope=29、Notification scope=30:各模組 logic/usecase 使用對應 scope
|
||
type (
|
||
// ErrorDetail 失敗時 error 欄位
|
||
ErrorDetail {
|
||
BizCode string `json:"biz_code"`
|
||
Scope uint32 `json:"scope,omitempty"`
|
||
Category uint32 `json:"category,omitempty"`
|
||
Detail uint32 `json:"detail,omitempty"`
|
||
}
|
||
|
||
// APIErrorStatus 失敗回應 envelope(HTTP 4xx/5xx)
|
||
APIErrorStatus {
|
||
Code int64 `json:"code"`
|
||
Message string `json:"message"`
|
||
Error ErrorDetail `json:"error"`
|
||
}
|
||
|
||
// EmptyOKStatus 成功但無 data(confirm / delete 等;code=102000)
|
||
EmptyOKStatus {
|
||
Code int64 `json:"code"`
|
||
Message string `json:"message"`
|
||
}
|
||
)
|