需定义标准响应结构体、使用中间件统一封装、基于Gin扩展JSON方法、用精准提示词控制CodeGeeX输出,确保所有Go后端接口返回统一JSON格式{code:int, message:string, data:interface{}}。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您使用CodeGeeX编写Go后端接口,需要生成符合规范的统一JSON响应结构,则需明确响应格式约定并确保CodeGeeX输出的代码严格遵循该结构。以下是实现统一JSON响应的多种方法:
一、定义标准响应结构体
通过定义全局响应结构体,使所有接口返回一致的字段(如code、message、data),便于前端统一解析和错误处理。
1、在项目根目录或common包中创建response.go文件。
2、声明结构体类型Response,包含int类型的Code、string类型的Message、interface{}类型的Data字段。
3、为Response添加方法Success(),返回code=200、message="success"的实例。
4、为Response添加方法Fail(code int, msg string),按传入参数填充Code和Message字段。
5、在HTTP处理器中调用Response.Success().WithData(data)或Response.Fail(400, "参数错误")并序列化为JSON。
二、使用中间件统一封装响应
借助HTTP中间件,在handler执行完毕后拦截返回值,自动包装为统一JSON格式,避免每个路由重复写封装逻辑。
1、定义中间件函数WrapResponse,接收http.Handler作为参数并返回新的http.Handler。
2、在ServeHTTP方法内调用next.ServeHTTP,同时捕获WriteHeader和Write调用行为。
3、自定义responseWriter结构体,重写Write方法,将原始响应体读取为字节切片。
4、判断原始状态码是否为200,若是则构造{code: 200, message: "success", data: 原始body}结构。
5、调用json.Marshal序列化新结构,并写入原始ResponseWriter。
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
三、基于gin框架的JSON封装扩展
若项目使用Gin框架,可利用其Context机制扩展JSON响应方法,提升开发效率与一致性。
1、为gin.Context定义扩展方法JSONSuccess(),内部调用c.JSON(200, map[string]interface{}{"code": 200, "message": "success", "data": data})。
2、定义JSONError()方法,接收code和msg参数,输出{code: code, message: msg, data: nil}。
3、在main.go中初始化router时,确保所有业务handler均使用c.JSONSuccess(data)而非原生c.JSON()。
4、对panic或全局异常,注册gin.CustomRecovery,捕获err后调用c.JSONError(500, "server error")。
5、在go.mod中确认gin版本不低于v1.9.1,以支持Context方法扩展语法。
四、CodeGeeX提示词精准控制输出格式
向CodeGeeX输入明确指令,使其直接生成含统一响应结构的Go代码,减少人工调整成本。
1、在提示词开头声明约束:请生成一个Go HTTP服务,所有API响应必须为JSON格式,结构为{code:int, message:string, data:interface{}}。
2、指定示例输出:例如:{"code":200,"message":"success","data":{"id":1,"name":"test"}}。
3、要求禁止返回裸数据或非标准字段,如不出现result、status等非常规键名。
4、附加约束:不使用第三方响应库,仅用标准库encoding/json。
5、对错误路径,强制要求code非200且data为null,message为中文描述。

















