目录

什么是Rest?

设计原则

规范统一的接口

HTTP请求规范

参数命名规范

状态码

统一返回数据格式

总结


什么是Rest?

REST与技术无关,它代表的是一种软件架构风格,REST它是 Representational State Transfer的简称,中文的含义是: "表征状态转移" 或 "表现层状态转化"。它是基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。

设计原则

1. 每一个URI代表一种资源;
2. 同一种资源有多种表现形式(xml/json);
3. 所有的操作都是无状态的。
4. 规范统一接口。
5. 返回一致的数据格式。
6. 可缓存(客户端可以缓存响应的内容)。

符合上述Rest原则的架构方式被称作为 RestFul 规范。

http请求本身是无状态的,它是基于 client-server 架构的,客户端向服务器端发的每一次请求都必须带有充分的信息能够让服务器端识别到,请求的一些信息通常会包含在URL的查询参数中或header中,服务器端能够根据请求的各种参数, 不需要保存客户端的状态, 直接将数据返回给客户端。无状态的优点是:可以大大提高服务器端的健状性和可扩展性。

规范统一的接口

Rest接口约束定义为: 资源识别;请求动作;响应信息; 它表示通过uri表示出要操作的资源,通过请求动作(http method)标识要执行的操作,通过返回的状态码来表示这次请求的执行结果。

传统URL请求格式:

url 请求方式 作用
http://127.0.0.1/api/getUser GET 获取用户数据
http://127.0.0.1/api/saveUser POST 新增用户
http://127.0.0.1/api/updateUser POST 修改用户信息
http://127.0.0.1/api/delUser GET/POST 删除用户信息

RestFul请求格式:

url 请求方式 作用
http://127.0.0.1/api/user GET 获取用户数据
http://127.0.0.1/api/user POST 新增用户
http://127.0.0.1/api/user PUT 修改用户信息
http://127.0.0.1/api/user DELETE 删除用户信息

如上可以看到,增删改成都是使用同一个api接口,只是请求的方式 GET(查询)、POST(新增)、DELETE(删除)、PUT(更新)来代表的是增删改查操作的方式。然后开发获取到该请求的header头部信息,就可以知道是什么方式来请求数据的了。

HTTP请求规范

GET (SELECT): 查询;从服务器取出资源.
POST(CREATE): 新增; 在服务器上新建一个资源。
PUT(UPDATE): 更新; 在服务器上更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE): 更新;在服务器上更新部分资源(客户端提供改变的属性)。
DELETE(DELETE): 删除; 从服务器上删除资源。

 参数命名规范

参数推荐采用如下方式:

//其中“1”是传入的id
http://127.0.0.1/api/user/1

状态码

客户端的每一次请求, 服务器端必须给出回应,回应一般包括HTTP状态码和数据两部分。

统一返回数据格式

RestFul规范中的请求应该返回统一的数据格式。对于返回的数据,一般会包含如下字段:

code:状态码

status: 文本, 如:'success'(成功), 'fail'(失败), 'error'(异常)

当status的值为 'fail' 或 'error'时,需要添加 message 字段,用于显示错误信息。

data: 当请求成功的时候, 返回的数据信息。但是当状态值为 'fail' 或 'error' 时,data仅仅包含错误原因或异常信息等。

返回成功的JSON格式如下:

{"code": 200,"status": "success","data": [{"username": "wsljy","password": "123456"}]
}

返回失败的JSON格式如下:


{"code": 404,"status": "error","message": '没有找到其资源',"data": null
}

总结

RestFul风格可以设定其请求方式,做到相同的地址访问不同的方法,请求的方式有5种为:GET、POST、PUL、PATCH、DELETE,返回的结果一般包括:状态码、文本和相应数据,RestFul风格可以过滤资源使得结构清晰,配合请求方式后会增加可读性,隐藏参数使它更加安全。

Rest Ful 设计规范相关推荐

  1. REST接口设计规范

    REST接口设计规范 (超级详细) RESTful API 设计指南 (阮一峰)

  2. 出入口控制系统工程设计规范_[问答]连载77-控制系统之间如何时钟同步?

    仪表小猪 在控制系统中,趋势.报警.事件记录等都与时间相关,因此整个系统始终保持一个统一的时钟很关键.如果操作站和控制站时间不同步,操作员站上面显示的事件.趋势等也不能真正的反应出现场实际变化的时间, ...

  3. UI培训分享:导航栏UI设计规范及注意事项有哪些?

    UI设计学习起来要注意的东西还是有很多的,例如导航栏,导航栏UI设计规范及注意事项有哪些呢?今天小编为大家详细的介绍一下关于导航栏的设计注意事项,希望能够帮助到今后工作的你. UI培训分享:导航栏UI ...

  4. UI设计APP图标设计规范介绍

    ​ UI设计所涉及的内容是比较多的,其中关于APP图标的设计就是常见的一种,UI设计师需要掌握不同的UI设计规范.今天小编就帮助大家了解下移动端APP图标设计规范: 很多设计师以为UI设计就是设计图标 ...

  5. RESTful API 设计规范精讲

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:马一特 cnblogs.com/mayite/p/97989 ...

  6. 短短的 RESTful API 设计规范

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:马一特 cnblogs.com/mayite/p/97989 ...

  7. Git 分支设计规范

    来自:新亮笔记 概述 这篇文章分享 Git 分支设计规范,目的是提供给研发人员做参考. 规范是死的,人是活的,希望自己定的规范,不要被打脸. 在说 Git 分支规范之前,先说下在系统开发过程中常用的环 ...

  8. Material Design 设计规范总结(2)

    本文是Material Design设计规范总结的第二部分,是进行UI设计与前端开发的必备参考资料. 八.布局 (1)所有可操作元素最小点击区域尺寸:48dp X 48dp. (2)栅格系统的最小单位 ...

  9. 出色图形用户界面(GUI)设计规范

    来源:  作者:James Hobart 翻译:spark.bbs@bbs.nankai.edu.cn [字体:大 中 小] 出色图形用户界面(GUI)设计规范 作者:James Hobart 翻译: ...

最新文章

  1. linux 网卡流量脚本,每5分钟统计Linux 网卡流量的脚本
  2. 蓝桥杯:基础练习 闰年判断
  3. Xcode无法识别真机
  4. 批处理,扫描当前目录下的文件,传到指定文本中
  5. 矢量数据空间索引之R树索引
  6. 海康威视 私有网盘 windows 客户端下载地址
  7. 单片机---HLK-W801图形框架LVGL下开发(六)
  8. Elasticsearch Nested类型深入详解
  9. 液化气瓶监管技术如何做到正确选型
  10. 笔记本计算机在桌面显示器,解决笔记本电脑屏幕出现条纹的五大方法
  11. PCI总线---深入理解PCI总线
  12. linux虚拟机优点,什么是虚拟机技术(是用虚拟机有哪些优势)
  13. 三维可视化技术在超超临界锅炉防磨防爆中的应用
  14. div背景图片之间存在的缝隙解决方法
  15. 3.3差错控制(检错编码、纠错编码)
  16. 小技巧使Windows Live Writer网络图片本地化
  17. 0.96寸4针OLED的使用与驱动模块
  18. Java多线程读取excel文件_解决springboot 多线程使用MultipartFile读取excel文件内容报错问题...
  19. XHR如何爬虫_python instagram 爬虫
  20. 曾经火遍全国的百度贴吧,彻底凉了...

热门文章

  1. 金融分析师越来越像算命的了
  2. spring操作transactionManager
  3. clearfix的用法
  4. 【Python】蒙特卡罗算法求圆面积
  5. 分布式事务的一致性问题
  6. MBP 常用 命令行
  7. Matlab丑恶嘴脸 | MathWorks Account Unavailable - Technical Issue
  8. CSS中的filter(滤镜)
  9. linux thread model
  10. 薄膜晶体管液晶显示器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告