diff --git a/http_code.go b/http_code.go new file mode 100644 index 0000000..e81c740 --- /dev/null +++ b/http_code.go @@ -0,0 +1,105 @@ +// Package consts ... +// +// Description : consts ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2025-04-19 12:38 +package consts + +import ( + "fmt" + "net/http" +) + +type HttpCode struct { + Code int `json:"code"` + Desc string `json:"desc"` +} + +func newHttpCodeData(httpCode int) HttpCode { + desc := http.StatusText(httpCode) + if len(desc) == 0 { + desc = fmt.Sprintf("%v: unknown error", httpCode) + } + return HttpCode{ + Code: httpCode, + Desc: desc, + } +} + +var ( + HttpCodeList = []HttpCode{ + // 1xx + newHttpCodeData(http.StatusContinue), + newHttpCodeData(http.StatusSwitchingProtocols), + newHttpCodeData(http.StatusProcessing), + newHttpCodeData(http.StatusEarlyHints), + + // 2xx + newHttpCodeData(http.StatusOK), + newHttpCodeData(http.StatusCreated), + newHttpCodeData(http.StatusAccepted), + newHttpCodeData(http.StatusNonAuthoritativeInfo), + newHttpCodeData(http.StatusNoContent), + newHttpCodeData(http.StatusResetContent), + newHttpCodeData(http.StatusPartialContent), + newHttpCodeData(http.StatusMultiStatus), + newHttpCodeData(http.StatusAlreadyReported), + newHttpCodeData(http.StatusIMUsed), + + // 3xx + newHttpCodeData(http.StatusMultipleChoices), + newHttpCodeData(http.StatusMovedPermanently), + newHttpCodeData(http.StatusFound), + newHttpCodeData(http.StatusSeeOther), + newHttpCodeData(http.StatusNotModified), + newHttpCodeData(http.StatusUseProxy), + newHttpCodeData(http.StatusTemporaryRedirect), + newHttpCodeData(http.StatusPermanentRedirect), + + // 4xx + newHttpCodeData(http.StatusBadRequest), + newHttpCodeData(http.StatusUnauthorized), + newHttpCodeData(http.StatusPaymentRequired), + newHttpCodeData(http.StatusForbidden), + newHttpCodeData(http.StatusNotFound), + newHttpCodeData(http.StatusMethodNotAllowed), + newHttpCodeData(http.StatusNotAcceptable), + newHttpCodeData(http.StatusProxyAuthRequired), + newHttpCodeData(http.StatusRequestTimeout), + newHttpCodeData(http.StatusConflict), + newHttpCodeData(http.StatusGone), + newHttpCodeData(http.StatusLengthRequired), + newHttpCodeData(http.StatusPreconditionFailed), + newHttpCodeData(http.StatusRequestEntityTooLarge), + newHttpCodeData(http.StatusRequestURITooLong), + newHttpCodeData(http.StatusUnsupportedMediaType), + newHttpCodeData(http.StatusRequestedRangeNotSatisfiable), + newHttpCodeData(http.StatusExpectationFailed), + newHttpCodeData(http.StatusTeapot), + newHttpCodeData(http.StatusMisdirectedRequest), + newHttpCodeData(http.StatusUnprocessableEntity), + newHttpCodeData(http.StatusLocked), + newHttpCodeData(http.StatusFailedDependency), + newHttpCodeData(http.StatusTooEarly), + newHttpCodeData(http.StatusUpgradeRequired), + newHttpCodeData(http.StatusPreconditionRequired), + newHttpCodeData(http.StatusTooManyRequests), + newHttpCodeData(http.StatusRequestHeaderFieldsTooLarge), + newHttpCodeData(http.StatusUnavailableForLegalReasons), + + // 5xx + newHttpCodeData(http.StatusInternalServerError), + newHttpCodeData(http.StatusNotImplemented), + newHttpCodeData(http.StatusBadGateway), + newHttpCodeData(http.StatusServiceUnavailable), + newHttpCodeData(http.StatusGatewayTimeout), + newHttpCodeData(http.StatusHTTPVersionNotSupported), + newHttpCodeData(http.StatusVariantAlsoNegotiates), + newHttpCodeData(http.StatusInsufficientStorage), + newHttpCodeData(http.StatusLoopDetected), + newHttpCodeData(http.StatusNotExtended), + newHttpCodeData(http.StatusNetworkAuthenticationRequired), + } +)