当前位置: 首页 > news >正文

API的基础讲解

接口(API)、请求体/响应体、请求类型、状态码、RESTful API 实战指南


1. 接口(API):前后端的通信通道

核心比喻

  • 前端 = 顾客
  • 后端 = 厨房
  • 接口 = 点餐窗口 + 菜单规则

真实接口示例

  • 登录:POST /api/login
  • 获取用户信息:GET /api/user/1001
  • 删除商品:DELETE /api/goods/2024

2. 请求体(Request Body):前端传给后端的数据

适用场景:POST(新增)、PUT(更新)、PATCH(部分更新)

真实示例
// 注册新用户 { "username": "wangwu", "password": "abc123", "phone": "13800138000" } // 修改商品库存(PATCH) { "stock": 50 }

3. 响应体(Response Body):后端返回的数据

行业通用格式

{ "code": 200, // 状态码 "msg": "success", // 提示信息 "data": {} // 核心数据 }
真实响应示例
// 获取订单列表 { "code": 200, "data": [ { "id": 3001, "amount": 99.9 }, { "id": 3002, "amount": 200 } ] } // 登录失败 { "code": 400, "msg": "密码错误" }

4. 请求类型(HTTP Methods)
方法作用实战示例
GET查询数据GET /api/orders?page=1
POST新增资源POST /api/products
PUT全量更新PUT /api/user/1001
PATCH部分更新PATCH /api/user/1001/avatar
DELETE删除资源DELETE /api/cart/2024

5. 状态码(HTTP Status Code)

高频状态码速查表

状态码含义触发场景
200成功查询订单成功
201创建成功新建用户成功
400客户端错误提交了无效的手机号
401未授权未登录访问个人资料
404资源不存在访问不存在的商品ID
500服务器内部错误数据库连接失败

6. RESTful API 设计规范

核心原则

  1. URL 用名词表示资源(如/users,不用/getUsers
  2. HTTP 方法表示操作(GET/POST = 查/增)
  3. 状态码传达结果
传统接口 vs RESTful 对比
操作传统风格RESTful 风格
获取用户GET /api/getUser?id=1GET /api/users/1
修改商品POST /api/updateGoodsPUT /api/goods/2024
删除评论GET /api/delCommentDELETE /api/comments/5

7. 完整实战案例:用户系统

场景:前端用 Axios 调用 RESTful 接口

// 1. 获取用户列表 axios.get('/api/users', { params: { page: 1 } }) // 2. 创建新用户 axios.post('/api/users', { name: "李四", job: "工程师" }) // 3. 更新用户(PUT全量更新) axios.put('/api/users/1001', { name: "李四新名字", job: "高级工程师" }) // 4. 删除用户 axios.delete('/api/users/1001')

响应处理示例

axios.get('/api/users/1001') .then(response => { console.log(response.data); // { code:200, data:{ id:1001, name:"李四" } } }) .catch(error => { if (error.response.status === 404) { alert("用户不存在!"); } });

附录:Axios 请求模板(复制可用)
// 通用配置 const service = axios.create({ baseURL: '/api', timeout: 5000 }); // 请求拦截器(例如添加token) service.interceptors.request.use(config => { config.headers.Authorization = 'Bearer xxx'; return config; }); // 响应拦截器(统一处理错误) service.interceptors.response.use( response => response.data, // 直接返回data字段 error => { if (error.response.status === 401) { router.push('/login'); // 跳转到登录页 } return Promise.reject(error); } );

http://www.jsqmd.com/news/669068/

相关文章:

  • CTF SHOW WEB 4(无法查看源代码)
  • 【仅限首批200名AI架构师】:获取AGI融合系统故障诊断矩阵(含17类典型冲突模式+动态权重调优公式)
  • 抓包方案分享
  • 手把手教你:在UVM验证环境中安全使用disable fork管理并发线程
  • 当代码几乎免费时,程序员还剩下什么?
  • 基于springboot的加油站销售积分管理系统的设计与实
  • AI Agent的感知世界:多模态输入处理
  • AGI与机器人结合不是“加法”,而是“范式熔断”——SITS2026提出全新评估矩阵(含6维动态权重算法)
  • 手把手教你用CAPL脚本监控CANoe环境变量变化,实现自动化测试联动
  • C语言分支循环语句:第二篇:循环语句
  • 世界模型是人机环境系统智能的子集吗?
  • HC32F460驱动ILI9341并口屏:从SPI到16位并口的提速实战与emWin移植避坑
  • AGI游戏智能落地失败率高达67%?SITS2026专家团复盘11个真实项目,提炼出2个关键决策阈值与1个不可逆拐点
  • Netty 编解码器学习记:从粘包拆包到自定义协议
  • JAVA语法合集之(六):活用数组
  • 2026年评价高的天津预应力混凝土屋面板品牌厂家推荐 - 品牌宣传支持者
  • 数据结构面试题避坑指南:别再被这些‘送分题’骗了(附详细解析)
  • 半马:机器人已超过人类
  • 终极指南:专业级AMD Ryzen调试工具SMUDebugTool深度解析与实战应用
  • 2026届必备的五大AI辅助论文助手解析与推荐
  • 项目实训(一)|中医智能诊疗系统后端基础架构搭建与环境配置
  • 2026年3月评价好的除铁器公司口碑推荐,电磁悬挂除铁器/全自动永磁悬挂除铁器/永磁筒磁选机/电磁铁,除铁器厂家有哪些 - 品牌推荐师
  • 协作的“语法”:多 Agent 系统的编排
  • 别只背课文了!用Python爬虫+AI工具,高效复习《新概念英语三》Lesson 16-20
  • 智能客服的终局:从关键词匹配到能够处理复杂售后的全能 Agent
  • python开发一款翻译工具
  • RAG流程详解
  • 2026年热门的室内安全体验馆稳定合作公司 - 品牌宣传支持者
  • SQL处理分组聚合中的数据一致性_使用事务保证
  • 不止于加载:在Cesium中优化ArcGIS WMTS地图服务的性能与视觉体验