package response import ( "encoding/json" "net/http" ) const ( CodeOK = 0 CodeBadRequest = 40000 CodeUnauthorized = 40100 CodeForbidden = 40300 CodeConflict = 40900 CodeServerError = 50000 ) type Body struct { Code int `json:"code"` Message string `json:"message"` RequestID string `json:"request_id,omitempty"` Data any `json:"data,omitempty"` } func OK(w http.ResponseWriter, requestID string, data any) { write(w, http.StatusOK, Body{Code: CodeOK, Message: "ok", RequestID: requestID, Data: data}) } func Fail(w http.ResponseWriter, status int, code int, requestID string, message string) { write(w, status, Body{Code: code, Message: message, RequestID: requestID}) } func write(w http.ResponseWriter, status int, body Body) { w.Header().Set("Content-Type", "application/json; charset=utf-8") w.WriteHeader(status) _ = json.NewEncoder(w).Encode(body) }