syntax = "proto3"; package serviceerr; import "errors/errors.proto"; option go_package = "./serviceerr/serviceerr;serviceerr"; // 全部service共用的错误码,从1-100保留给serviceerr enum Err { // GRPC项目缺省错误码或显示指定的码必须符合如下链接中定义的http码 // https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto // 原因:此码为http状态码,在GRPC服务中,输出时会将其转换为grpc的状态码,在客户端调用调用返回err时, // 可以使用统一定义生成的err,来判断是否是某种错误,如IsDbNotFound方法, // 可以看到方法中调用了errors.FromError,它会将grpc的状态码转换为http状态码 // 因此需要保证定义的code必须为如上链接中可以相互转换的状态码 option (errors.default_code) = 500; // 系统panic错误 SYSTEM_PANIC = 0; // 未登录,401不能滥用,客户端会拉起登录 NOT_LOGIN = 1; // 统一未找到数据的提示,无特殊业务处理的 reason DB_NOT_FOUND = 2; // 参数错误 PARAM = 3; // 不允许 NOT_ALLOW = 4; // 异常 EXCEPTION = 5; // 余额不足 BALANCE_NOT_ENOUGH = 6; // 密码错误 PWD_MISMATCH = 7; // 没有找到数据 NOT_FOUND = 8 [(errors.code) = 404]; }