# go-gateway **Repository Path**: go-framework_llllllh/go-gateway ## Basic Information - **Project Name**: go-gateway - **Description**: go网关,统一服务调用。前端调用方和后端服务方不直接进行通信,一切通信都通过api网关作为中间层接入,即 前端->网关->后端。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-24 - **Last Updated**: 2025-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go-gateway ## 介绍 go网关,统一服务调用。前端调用方和后端服务方不直接进行通信,一切通信都通过api网关作为中间层接入,即 前端->网关->后端。Go语言后端框架,结合go-zero等开源框架及工作使用的自研框架,定制更符合自身开发的go Web框架。 域名:api.xx.cn/api.xx.com 参数规范:统一入参和出参,具体可根据实际开发调整 ## 具体文档 详见./doc目录。 ## 项目架构 来源go-backnoemal。 ## 具体接口实现 ### 登录接口 **请求路径**:/login **请求参数**: ``` { "data": { ",,,":"..." // 其内容为非网关定义,其内容由后端用户系统进行定义和验证。 }, "label": { "type":"local|weixin", //登陆类型能够区分第三方账号登录还是本地账号登录 "uType": "aa", "sysId":"123", // 用于区分后端的用户系统,需要由管理员预先注册才能使用。 "terminalId":"...", // 用户登录时所用设备的ID,用于识别用户多设备登录的情况 "terminalIp": "..." // 登录设备的IP } } ``` **返回值**: ``` { "state": 0, // 0表示成功,非零表示异常 "data": { "...": "..." // 用户系统返回的数据, }, "label": { "token": "...", // token 用于下次的请求用户信息验证。此值在有效期内每次请求都会重新生成,有效期为30分钟。 "userID": "123" // 登录成功后返回的用户ID } } ``` ### 业务接口 **路径定义如下**: p:公共资源,无需用户登录的口 u:用户资源,需要用户登录并验证 token,有下面的二级目录 * c: 客户,如独立的消费者个体或企业员工 * b: 企业用户,是群体性客户。 * p: 代理商 * e: 内部员工 例 [http://api网关域名/u/b/getInfo](https://gitee.com/link?target=http%3A%2F%2Fxn--api-px1e02jwuhtt4f%2Fu%2Fb%2FgetInfo) 其中的 /u 是用于资源 /b 其企业用户 **入参**: ``` { "data": { "...": "..." // 后端业务需要处理的数据,由后端定义 }, "label": { "token": "...", // 由登录,或上次调用提供,用于用户合法性验证。 "terminalId":"..." // 用户登录时所用设备的ID,用于识别用户多设备登录的情况 "domain":"abc", 用于授权验证 }, "auth":{ "uId":"123", // 用户,安全网关会依据token重置此值 "sysId":"123", // 授权验证用于那个系统 "roleId":"123", // 要操作的角色 "tenantId": "123", // 租户ID,缺省为0 "domain":"123", // 要验证的领域 "operate":"123", // 要对领域进行的操作 } } ``` **api 网关请求下游的参数**: ``` { "data": { "...": "..." // 后端业务需要处理的数据,由后端定义 }, "label": { "resType":"", // 访问的资源类型,由 api 网关设置,请求前面的“路径定义” "uId": "...", // 由登录,或上次调用提供,用于用户合法性验证。 "sysId":"123", // 用于区分后端的用户系统,需要由管理员预先注册才能使用。 "terminalId":"..." // 用户登录时所用设备的ID,用于识别用户多设备登录的情况 "terminalIp": "..." // 登录设备的IP }, "traceId":"123", //网关会为所有请求分配一个唯一ID "auth":{...}, 同上,将要验证的内容顺便给下游一份。 } ``` **出参**: ``` { "state": 0, // 0表示成功,非零表示异常 "data": { "...": "..." // 下游服务返回的结果 }, "label": { "token": "..." // 由 api 网关新发放的token,有效期30分钟。 } } ```