news 2026/4/18 8:30:37

RESTful 前后端传参参数格式总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RESTful 前后端传参参数格式总结

本文总结了RESTful API前后端交互的四种传参方式:路径参数(用于资源标识)、查询参数(用于筛选分页)、请求体参数(传输复杂数据)和请求头参数(处理元数据和认证)。


详细说明了各参数类型的特点、适用HTTP方法及使用场景,对比了JSON、FormData等请求体格式的优缺点,并提供了混合使用示例。


重点强调了参数选择原则:路径参数用于必需资源标识,查询参数用于可选操作,请求体用于完整数据,请求头用于元数据。


同时指出了常见误区,如避免在查询参数中传递敏感信息等,旨在帮助开发者设计更符合RESTful原则、高可读性和可维护性的API。


RESTful 前后端传参参数格式总结

参数类型传参位置格式示例常见HTTP方法特点与用途
路径参数 (Path Parameters)URL路径中/users/123
/products/2024
GET, PUT, DELETE, PATCH1. 用于标识特定资源
2. 是URL的一部分
3. 通常是必需的
4. 更符合RESTful资源定位语义
查询参数 (Query Parameters)URL问号后/users?page=1&limit=20
/search?q=keyword&sort=desc
GET1. 用于筛选、排序、分页等可选参数
2. 键值对形式,用&连接
3. 长度有限制(因浏览器而异)
4. 可缓存
请求体参数 (Body Parameters)HTTP请求体中JSON:{"name":"John", "age":30}
Form:name=John&age=30
XML:<user><name>John</name></user>
POST, PUT, PATCH1. 传输数据量大,无长度限制
2. 支持复杂数据结构
3. 不可缓存(GET方法通常不应使用)
4. 需设置Content-Type头部
请求头参数 (Header Parameters)HTTP头部Authorization: Bearer token123
Content-Type: application/json
所有方法1. 用于元数据、认证、内容协商
2. 键值对形式
3. 大小有限制(通常8KB以内)
4. 自动包含在请求中

详细说明与最佳实践

1.路径参数

  • 用途: 标识唯一资源或资源层次结构

  • 示例:DELETE /api/users/{userId}/posts/{postId}

  • Content-Type: 不适用(参数在URL中)

2.查询参数

  • 用途: 过滤、排序、分页、搜索等可选操作

  • 示例:GET /api/products?category=electronics&minPrice=100&sort=price&page=2

  • Content-Type: 不适用

3.请求体参数(常见格式对比)

格式Content-Type优点缺点适用场景
JSONapplication/json1. 数据结构清晰
2. 前端JS原生支持
3. 可读性好
1. 相比二进制格式体积稍大
2. 不支持文件上传
REST API主要推荐格式,复杂数据结构
Form Dataapplication/x-www-form-urlencoded1. 浏览器原生支持
2. 简单键值对
1. 不支持嵌套结构
2. 值需要URL编码
简单表单提交,传统Web应用
Multipartmultipart/form-data1. 支持文件上传
2. 可混合文本和文件
1. 格式复杂
2. 体积较大
文件上传,包含文件的表单
XMLapplication/xml1. 严格的数据结构
2. 丰富的元数据支持
1. 冗长,体积大
2. 解析复杂
传统企业系统,SOAP API

4.混合使用示例

# 认证令牌在头部,ID在路径,分页在查询,更新数据在请求体 PUT /api/users/123/orders?notify=true Authorization: Bearer xyz789 Content-Type: application/json { "status": "shipped", "trackingNumber": "TRK123456" }

选择原则总结

  1. 路径参数: 用于必须的资源标识

  2. 查询参数: 用于可选的过滤、排序等

  3. 请求体: 用于创建/更新资源的完整数据

  4. 请求头: 用于元数据认证信息


常见误区避免

  • ❌ 用查询参数传递敏感信息(会在日志、浏览器历史中暴露)

  • ❌ GET请求使用请求体传递参数(不符合HTTP语义,且可能不被支持)

  • ❌ 路径参数用于可选信息(会改变资源标识)

  • ✅ 保持参数位置的一致性(同类型参数总在相同位置)


这种传参结构设计能够使API更符合RESTful原则,提高可读性、可维护性和缓存效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 19:00:45

这次彻底告别手写正则表达式!

这篇文章的目的是让你能得到完美的正则表达式&#xff0c;而且还不用自己拼。说到正则表达式&#xff0c;一直是令我头疼的问题&#xff0c;这家伙一般时候用不到&#xff0c;等用到的时候发现它的规则是一点儿也记不住&#xff0c;\d表示一个数字&#xff0c;\s表示包括下划线…

作者头像 李华
网站建设 2026/3/25 15:39:18

【课程设计/毕业设计】基于Java SSM架构的房屋租赁系统基于ssm的房屋代管租赁系统的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/18 5:42:20

SSM毕设项目推荐-基于SSM框架技术的房屋代管租赁系统的设计与实现基于ssm的房屋代管租赁系统的设计与实现【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华