zoukankan      html  css  js  c++  java
  • [Go] go语言gin框架封装返回的错误码类

    当需要接口返回错误信息的时候

    尽量不要硬编码在接口返回对方

    可以封装一个错误码类

    类似下面这样

    演示

    types/api_code.go

    package types
    
    type Codes struct {
        SUCCESS   uint
        FAILED    uint
        CnMessage map[uint]string
        EnMessage map[uint]string
        LANG      string
    }
    
    var ApiCode = &Codes{
        SUCCESS: 20000,
        FAILED:  40000,
        LANG:    "cn",
    }
    
    func init() {
        ApiCode.CnMessage = map[uint]string{
            ApiCode.SUCCESS: "操作成功",
            ApiCode.FAILED:  "操作失败",
        }
        ApiCode.EnMessage = map[uint]string{
            ApiCode.SUCCESS: "succeed",
            ApiCode.FAILED:  "failed",
        }
    }
    func (c *Codes) GetMessage(code uint) string {
        if c.LANG == "cn" {
            message, ok := c.CnMessage[code]
            if !ok {
                return ""
            }
            return message
        } else {
            message, ok := c.EnMessage[code]
            if !ok {
                return ""
            }
            return message
        }
    }

    测试使用

    package types
    
    import "testing"
    
    func TestApiCode(t *testing.T) {
        t.Log(ApiCode.GetMessage(ApiCode.SUCCESS))
    }

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com
  • 相关阅读:
    前端-----盒子模型
    跨域
    DRF的分页
    DRF的权限和频率
    DRF 版本和认证
    DRF的视图和路由
    APIView和View的区别
    Serializers序列化组件
    RESTful
    Vuex以及axios
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15234084.html
Copyright © 2011-2022 走看看