# API 响应工具函数技术文档 本文档描述了一组用于生成标准化 API 响应的 Python 函数。这些函数旨在统一后端接口返回的数据格式,提升前后端交互的一致性和可维护性。 --- ## 目录 - [简介](#简介) - [函数说明](#函数说明) - [`Error(errno, msg)`](#errorerrno-msg) - [`Success(data)`](#successdata) - [`NeedLogin(path)`](#needloginpath) - [`NoPermission(path)`](#nopermissionpath) - [响应结构规范](#响应结构规范) - [使用示例](#使用示例) --- ## 简介 该模块提供四个辅助函数,用于快速构造具有统一结构的 JSON 响应对象。适用于 Web API 开发中常见的成功、错误、登录验证和权限控制场景。 所有函数返回标准字典结构,可直接序列化为 JSON 并返回给客户端。 --- ## 函数说明 ### `Error(errno, msg)` 生成表示错误响应的标准结构。 #### 参数 | 参数名 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | `errno` | `str` | `'undefined error'` | 错误代码或标识符,用于区分不同类型的错误 | | `msg` | `str` | `'Error'` | 用户可读的错误消息 | #### 返回值 ```json { "status": "Error", "data": { "message": "错误信息", "errno": "错误编号" } } ``` #### 示例 ```python Error("404", "资源未找到") # 返回: # { # "status": "Error", # "data": { # "message": "资源未找到", # "errno": "404" # } # } ``` --- ### `Success(data)` 生成表示操作成功的响应。 #### 参数 | 参数名 | 类型 | 说明 | |--------|------|------| | `data` | `any` | 实际返回的数据内容(可以是字典、列表、字符串等) | #### 返回值 ```json { "status": "OK", "data": "传入的数据" } ``` > **注意**:`data` 字段的内容由调用者决定,保持灵活性。 #### 示例 ```python Success({"id": 1, "name": "张三"}) # 返回: # { # "status": "OK", # "data": { # "id": 1, # "name": "张三" # } # } ``` --- ### `NeedLogin(path)` 指示客户端当前请求需要用户登录,并可指定跳转路径。 #### 参数 | 参数名 | 类型 | 说明 | |--------|------|------| | `path` | `str` | 登录成功后建议跳转的路径(如 `/login`) | #### 返回值 ```json { "status": "need_login", "data": "/login" } ``` #### 示例 ```python NeedLogin("/login") # 返回: # { # "status": "need_login", # "data": "/login" # } ``` 前端可根据此状态重定向至登录页。 --- ### `NoPermission(path)` 表示用户没有访问该资源的权限,可附带引导路径。 #### 参数 | 参数名 | 类型 | 说明 | |--------|------|------| | `path` | `str` | 权限不足时建议跳转的页面路径(如 `/forbidden` 或 `/home`) | #### 返回值 ```json { "status": "no_permission", "data": "/forbidden" } ``` #### 示例 ```python NoPermission("/home") # 返回: # { # "status": "no_permission", # "data": "/home" # } ``` 可用于前端展示权限提示或跳转到安全页面。 --- ## 响应结构规范 | 字段 | 类型 | 说明 | |------|------|------| | `status` | `string` | 响应状态码,取值包括:
`"OK"`:成功
`"Error"`:通用错误
`"need_login"`:需要登录
`"no_permission"`:无权限 | | `data` | `any` | 具体数据内容,结构根据 `status` 而变化 | 推荐前端通过判断 `status` 字段进行相应处理。 --- ## 使用示例 ```python # 成功返回用户信息 return Success({ "user_id": 123, "username": "alice", "email": "alice@example.com" }) # 参数校验失败 return Error("VALIDATION_FAILED", "邮箱格式不正确") # 未登录访问受保护接口 return NeedLogin("/login") # 用户无权访问管理员功能 return NoPermission("/dashboard") ``` --- ## 总结 这组函数简化了 API 响应的构建过程,确保前后端通信格式统一、语义清晰。建议在项目中全局使用,避免手动拼接响应结构带来的不一致性。