一、什么是Rest?

REST不是"rest"这个单词,而是几个单词缩写 -- REpresentational State Transfer 直接翻译:表现层状态转移,但这个翻译正常人根本看不懂,找到的一种最好理解的说法是,URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

REST成熟度的四个层次

第一个层次(Level0)的Web 服务只是使用 HTTP 作为传输方式,实际上只是远程方法调用(RPC)的一种具体形  式。SOAP和 XML-RPC都属于此类。

第二个层次(Level1)的Web 服务引入了资源的概念。每个资源有对应的标识符和表达。

第三个层次(Level2)的Web 服务使用不同的 HTTP 方法来进行不同的操作,并且使用HTTP 状态码来表示不同的结果。如 HTTPGET 方法来获取资源,HTTPDELETE 方法来删除资源。

第四个层次(Level3)的Web 服务使用 HATEOAS。在资源的表达中包含了链接信息。客户端可以根据链接来发现可以执行的动作。

二、Restful api接口有什么特征?

REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)。

1.URL的根路径

http://api.chesxs.com/v1

2.需要有api版本信息

http://api.chesxs.com/v1

3.URL中只使用名词指定资源,不用动词,且推荐使用复数

服务(Server)提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。比如:

http://api.chesxs.com/v1/cars // 获取某个账户下的车辆列表

http://api.chesxs.com/v1/fences // 获取某个账户下的围栏列表

4. 用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转

GET 用来获取资源,

POST 用来新建资源(也可以用于更新资源)。比如:POST http://api.chesxs.com/v1/car: 添加车辆

PUT 用来更新资源,

DELETE 用来删除资源。比如:DELETE http://api.chesxs.com/v1/cars 删除某辆车 (在http parameter指定好友id)

UPDATE http://api.chesxs.com/v1/fence 更新围栏信息

错误使用: GET http://api.chesxs.com/v1/deleteCar 删除车辆

5.GET应该是安全的,不会改变资源状态

这个应该很好理解,get的时候就只是获取资源,而不涉及添加、更新、删除资源。

6.使用正确的HTTP Status Code返回状态码

常用的有404,200,500,400等等。

7.过滤信息

如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。

下面是一些常见的参数。

?limit=10:指定返回记录的数量

?offset=10:指定返回记录的开始位置。

?page=2&per_page=100:指定第几页,以及每页的记录数。

?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

?producy_type=1:指定筛选条件

8.规范返回的数据

为了保障前后端的数据交互的顺畅,建议规范数据的返回,并采用固定的数据格式封装。

接口返回模板:

{

status:0,

data:{}||[],

msg:’’

}

总结,看一个标准的restful api要可以做到

看Url就知道要操作的资源是什么,是操作车辆还是围栏

看Http Method就知道操作动作是什么,是添加(post)还是删除(delete)

看Http Status Code就知道操作结果如何,是成功(200)还是内部错误(500)

参考文章:https://www.cnblogs.com/bndong/p/6139598.html

restapi是什么意思_网上整理的对于Rest和Restful api的理解相关推荐

  1. 网上整理的对于Rest和Restful api的理解

    一.什么是Rest? REST不是"rest"这个单词,而是几个单词缩写 -- REpresentational State Transfer 直接翻译:表现层状态转移,但这个翻译 ...

  2. 网上整理的对于Rest和Restful api的理解 - 那啥快看 - 博客园

    一.什么是Rest? REST不是"rest"这个单词,而是几个单词缩写 -- REpresentational State Transfer 直接翻译:表现层状态转移,但这个翻译 ...

  3. rest api是什么_一文搞懂什么是RESTful API

    RESTful接口实战 首发公众号:bigsai 转载请附上本文链接 文章收藏在回车课堂 前言 在学习RESTful 风格接口之前,即使你不知道它是什么,但你肯定会好奇它能解决什么问题?有什么应用场景 ...

  4. 访问页面升级访问_容器化单页面应用中RESTful API的访问

    最近在工作中,需要让运行在容器中的单页面应用程序能够访问外部的RESTful API.这个需求看起来并不困难,不过实现起来还是有些曲折的.在此,我就将这部分内容总结一下. 在入正题之前,有个一问题,就 ...

  5. 前端websocket获取数据后需要存本地吗_是什么让我放弃了restful api?了解清楚后我全面拥抱GraphQL...

    GraphQL初步认识 背景 REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史.它的简单易用性,可扩展性, ...

  6. 前端websocket获取数据后需要存本地吗_是什么让我放弃了Restful API?了解清楚后我全面拥抱GraphQL!...

    背景 REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史.它的简单易用性,可扩展性,伸缩性受到广大Web开发 ...

  7. 想要专升本你不得不看的全干货_吐血整理_专升本_计算机文化基础(一)

    你好,我是阿ken 2021/6/26 第一次优化排版和内容 之后会持续优化修改 ---------------- 版权声明:本文为CSDN博主「请叫我阿ken」的原创文章,遵循CC 4.0 BY-S ...

  8. 想要专升本你不得不看的全干货_吐血整理_专升本_计算机文化基础( 十 四 )

    大家好,我是阿Ken.很快就要整理完第三章了~ 对于专升本_计算机文化基础我已经在博客里整理了已经一半多了,希望能够在我整理后能够帮助其他的小伙伴,会一直整理完所有的专升本_计算机文化基础的笔记,感兴 ...

  9. 想要专升本你不得不看的全干货_吐血整理_专升本_计算机文化基础( 十 五 )

    大家好,我是阿Ken.很快就要整理完第三章了~ 对于专升本_计算机文化基础我已经在博客里整理了已经一半多了,希望能够在我整理后能够帮助其他的小伙伴,这月底整理完所有的专升本_计算机文化基础的笔记,感兴 ...

最新文章

  1. 【Spark】Spark2.x版的新特性
  2. 世界上第一台电子计算机到底是谁发明的?
  3. asp开发中存储过程应用全接触 _asp技巧
  4. 性能调优某大型银行的一个系统过程跟踪和记录
  5. ifstream 打开中文路径乱码问题处理
  6. python求列表最大值下标_切片,丝滑的字符串 | Python基础连载(三)
  7. 调度策略的测试方法及其自动化
  8. Java语言学习之泛型的用法
  9. Java千百问_07JVM架构(001)_java内存模型是什么样的
  10. 深入理解BGP的几个路由特性(试读连载六)
  11. firefox火狐同步windows和linux书签
  12. 青岛科技大学计算机硕士就业,2021年青岛科技大学专业排行榜,哪个专业就业比较好...
  13. android手机是vivo吗,为什么最流畅的安卓手机竟然是VIVO和OPPO?
  14. 《JS学习》Object对象
  15. 盘点国内外25款备具代表性的协同办公软件
  16. Spring Web(第一部分)
  17. 记前端状态管理库Akita中的一个坑
  18. 作为程序员,哪些技能是必须要掌握的?
  19. 交易、账务系统去Oracle经验
  20. 反向交易: 减少最大回撤以及在其它市场上测试

热门文章

  1. 好用的z3数独求解器
  2. gem5运行SPECCPU2017benchmark
  3. Android互动直播APP开发入门笔记,吐血整理
  4. 王者里的高清绝美海报(别再用黑乎乎的背景了)
  5. 5G安全的全球统一认证体系和标准演进
  6. 地缘剧本杀 (九):抉择(原创小说连载,内含语音)
  7. PHP防花生日记官网源码【前后端分离】源码
  8. 基于微信健身房私教预约小程序系统设计与实现 开题报告
  9. Matlab虚拟现实工具箱——没有VRML Editor时的使用办法(应该是Simulink 3D Animation Demo版本的都是这样)
  10. Unity初学:制作2D小游戏Sunny Land 1.游戏背景场景添加