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

URL 设计

刚学的时候 Java 后端的 url 地址一般都是随便写的,像 /getUser/saveUser 等。但是这些都是不标准的写法。

URL 是有设计规范的。

URL 表达的是 资源(Resource)而不是 行为(Action)。用 HTTP 动词 表达操作类型,用 路径层级 表达资源关系

URL 命名规范

  • 字母全部小写,不能使用大写字母

  • 如果是多个单词组合,中间要使用 - 分隔单词

  • URL 表示资源集合,所以要使用复数名词

  • 不要再路径中使用动词,动词一般是用 HTTP 方法表达

  • URL 路径要体现资源层级关系,子资源从属父资源

  • 路径中可以体现版本控制

[版本] / [业务领域] / [资源名] / [资源ID] / [子资源] / [动作]

HTTP 方法与语义对应表

方法动作示例
GET获取资源GET /api/v1/users
POST创建资源 / 复杂查询POST /api/v1/devices / POST /api/v1/devices/query
PUT更新资源(整体更新)PUT /api/v1/devices/{id}
PATCH部分更新PATCH /api/v1/devices/{id}
DELETE删除资源DELETE /api/v1/devices/{id}

层级结构设计原则

单资源
类型URL 示例操作示例
集合资源/api/v1/usersGET 获取列表,POST 新增
单个资源/api/v1/users/{userId}GET 获取详情,PUT 更新,DELETE 删除
子资源(属于某个父资源)

表达从属关系,例如设备的报警记录、参数等。

场景URL 示例
设备报警记录/api/v1/devices/{deviceId}/alarm-records
设备温湿度参数/api/v1/devices/{deviceId}/params/temp-hum
用户日志/api/v1/users/{userId}/logs
动作类接口(非纯 CRUD)

如果操作不是简单的 CRUD,而是特殊动作(如激活、导出、测试连接), 用动词放在子路径上表达动作。

动作URL 示例方法
激活设备/api/v1/devices/{deviceId}/activatePOST
导出日志/api/v1/user/logs/exportGET
测试MQ连接/api/v1/system/mqtt/test-connectionPOST

查询参数设计

一般来说查询操作是使用 GET 操作,这时它的查询参数一般会使用 ?param1=value1&param2=value2 缀在路径后面。但是,当有大量查询参数时,这样的形式就不适合了,这时就可以使用 POST 查询,查询参数由 Json 请求体携带

简单查询
GET /api/v1/alarm-records?startTime=2025-10-01T00:00:00&endTime=2025-10-11T23:59:59&page=1&pageSize=20
复杂查询
POST /api/v1/alarm-records/query
Content-Type: application/json
​
{"deviceIds": [1, 2, 3],"timeRange": { "start": "2025-10-01T00:00:00", "end": "2025-10-11T23:59:59" },"levels": ["high", "medium"],"sort": { "field": "timestamp", "order": "desc" },"page": 1,"pageSize": 20
}
http://www.dtcms.com/a/471426.html

相关文章:

  • 档案网站的建设企业网站建立流程
  • 【OpenGauss】知识总结
  • 海淀教育人才网站网站系统正在升级维护
  • 各种不同光谱工业相机的特性的详细介绍
  • Java学习之旅第二季-21:记录
  • 自己建设网站怎么被百度收入外国人做网站
  • 如何查询网站是谁做的做淘客网站怎么
  • 工业自动化通信控制
  • NetworkPolicy详解
  • 郑州网站建设行情wordpress网站第一次打开慢
  • Python多进程编程核心组件详解:Event、Queue与进程生命周期管理
  • 真空共晶贴装技术
  • 添加SystemProperties的4种方法
  • 汕头建站平台免费推广网站入口2023燕
  • 深圳做棋牌网站建设有哪些公司海阳建设局网站
  • 网站优化大赛做电子商务网站需要什么软件
  • 重庆网站建设外贸加盟建筑公司办分公司
  • 用 “按位统计” 找唯一出现少于 3 次的数
  • 【解决】FAILED TO lOAD IDLINUX.c32
  • 去重表格的几种思路
  • 网站美工做的是什么合肥外贸网站建设公司排名
  • 用mitmproxy替代selenium-wire
  • 响应式网站怎么改成都住建局官网住建蓉e办
  • 参数传递:从字符串拼接到 qs 标准化时代
  • 清浦网站建设清河做网站
  • 中山企业网站建设公司网站内容seo
  • 如何快速建立网站装修无忧网
  • 网站建设尾款收取公司网站界面如何设计
  • 网站前端设计图投诉网站制作
  • linux 启动脚本rcS 及分区挂载分析