web服务交互

我们在浏览器中能看到的每个网站,都是一个web服务。那么我们在提供每个web服务的时候,都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案。目前主流的三种web服务交互方案:-- REST ( Representational State Transfer)表述性状态转移-- SOAP (Simple Object Access Protocol)  简单的对象访问协议-- XML-RPC (XML Remote Procedure Call)基于XML的远程过程调用XML-RPC是通过XML将调用函数封装,并使用HTTP协议作为传送机制。后来在新的功能不断被引入下,这个标准慢慢演变成为今日的SOAP协定。SOAP服务则是以本身所定义的操作集,来访问网络上的资源。SOAP也是基于XML的,但是它不只限于HTTP协议的传输,包括TCP协议,UDP协议都可以传输。REST是Roy Thomas Fielding博士于2000年在他的博士论文里提出来的。REST相比SOAP更加简洁,性能和开发效率也有突出的优势。
现在越来越多的web服务开始采用REST风格设计和实现。
例如,amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。理解REST如果我们想要理解restful,就要理解Representational State Transfer这个词组的意思,表征性状态转移。这里所说的表征性,其实指的就是资源。通常我们称为资源状态转移。什么是资源任何事物,只要有被引用到的必要,它就是一个资源。我们在浏览器中看到的文本,视频,图片等等都是资源。这些都是实实在在存在的实体。资源可以是一个实体,也可以是抽象概念。那么在我们的网络中,我们要引用资源,资源一定要有一个标识,在web中的唯一标识就是URI, 

什么是URI,URLURI 统一资源标志符。URL 统一资源定位符。URI是给我们的资源进行标识的,URL是描述我们资源地址的。比如说我们每个人都有名字和身份证,名字可能重名,但是身份证是唯一的,那么身份证号就可以是我们的URI,标识我们每个人,也可以说标识我们每个资源。其实我们的URL可以说是URI的子集,通过定位的方式实现的URI。统一资源接口现在我们可以通过URL去访问到资源,那么我们对资源会有很多不同的操作,增删改查,根据HTTP请求方式的不同,对资源进行不同的操作,这个就是是统一资源接口。我们一定要遵循HTTP请求方法的语义,也就是说POST请求就在新增数据等....资源的表述资源的表述其实就是资源的展现形式,我们客户端和服务端传输的都是资源的表述,而不是资源本身。例如文本资源可以采用html、xml、json等格式,图片可以使用PNG或JPG展现出来。 可以通过HTTP内容协商,客户端可以通过Accept头请求一种特定格式的表述,服务端则通过Content-Type告诉客户端资源的表述形式。这些资源的表述呈现在页面上,就是我们说的资源状态。
状态转移我们在看页面的时候,从当前资源的表述(也可以说状态或者表现层)会跳转到其他的资源状态。服务端通过超媒体告诉客户端当前状态有哪些后续状态可以进入。这些类似"下一页"之类的链接起的就是这种推进状态的作用——指引你如何从当前状态进入下一个可能的状态。
总结 可以得知REST风格的特点如下: (1)在web中,只要有被引用的必要都叫资源。(2)每个URI代表一个资源,独一无二的。(3)客户端通过HTTP的方法,对服务器端资源进行操作;(4)客户端和服务器之间,传递这种资源的某种表现层;(5)通过超链接的指引,实现"表现层状态转移"。 

RESTful  

  如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。

  一种软件的架构风格,设计风格,  为客户端和服务端的交互提供一组设计原则和约束条件。

restful规范


一  面向资源编程每个URL代表一种资源,URL中尽量不要用动词,要用名词。
二  根据method不同,进行不同的操作GET/POST/PUT/DELETE/PATCH
三  在URL中体现版本https://www.bootcss.com/v1/mycsshttps://v1.bootcss.com/mycss
四  在URL中体现是否是APIhttps://www.bootcss.com/api/mycsshttps://api.bootcss.com/mycss
五  在URL中的过滤条件https://www.bootcss.com/v1/mycss?page=3
六  尽量使用HTTPShttps://www.bootcss.com/v1/mycss
七  响应时设置状态码1**  信息,服务器收到请求,需要请求者继续执行操作2**  成功,操作被成功接收并处理3**  重定向,需要进一步的操作以完成请求4**  客户端错误,请求包含语法错误或无法完成请求5**  服务器错误,服务器在处理请求的过程中发生了错误
八  返回值GET请求     返回查到所有或单条数据POST请求    返回新增的数据PUT请求    返回更新数据PATCH请求    局部更新  返回更新整条数据DELETE请求    返回值为空
九  返回错误信息返回值携带错误信息
十 Hypermedia API如果遇到需要跳转的情况 携带跳转转接口的URLret = {code: 1000,data:{id:1,name:'小强',depart_id:http://www.luffycity.com/api/v1/depart/8/}}

drf1 rest restful规范相关推荐

  1. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)

    阅读目录 一.Django请求生命周期: 二.WEB开发模式: 三.cbv源码分析: 四.认识RESTful 补充知识:跨域 五.基于原生django开发restful的接口 六.drf安装.使用.A ...

  2. restful规范和APIView

    django生命周期 1.先进入wsgi协议的web服务器2.进入django的中间件3.路由4.视图5.取模板,取数据,用数据渲染模板6.返回模板的字符串7.在wsgi中封装后发送给浏览器 开发模式 ...

  3. koa --- restful规范及其栗子

    遵循Restful规范的简单的栗子 前端代码: <html><head><script src="https://cdn.jsdelivr.net/npm/vu ...

  4. Django之 RESTful规范

    RESTful 规范 一.什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征 ...

  5. php restful规范,RESTFul API规范 详细指南

    RESTFul规范 RESTFul是一种HTTP API接口规范,只要满足的RESTFul规范,即可称为RESTFul API. 既然是接口,我们先来了解一下,他和传统的API接口有何不同吧. 本文以 ...

  6. Django RESTful规范

    Restful : web服务交互: 我们在浏览器中能看到的每个网站, 都是一个web服务. 那么我们在提供每个web服务的时候, 都需要前后端交互. 前后端交互就一定有一些实现方案, 我们通常叫we ...

  7. Restful规范-开发api接口

    web服务交互 我们在浏览器中能看到的每个网站,都是一个web服务.那么我们在提供每个web服务的时候, 都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案. 目前主流的三 ...

  8. Drf从入门到精通一(API接口、Postman、Restful规范、序列化、快速使用drf、CBV源码分析)

    文章目录 一.前后端开发模式 二.API接口 三.接口测试工具Postman 四.Restful规范 五.序列化反序列化 六.DjangoRestFramework快速使用 七.CBV源码分析 一.前 ...

  9. REST-Framework: RESTful规范

    目录 一 什么是RESTful 二  RESTful API设计 三 基于原生的Django实现 一 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representa ...

最新文章

  1. 通过application.properties修改打开网页的方式
  2. 交流线圈磁芯上的短路铜片
  3. 用 Fiddler 来弥补 Chrome Network 的小缺点
  4. React的生命周期(旧)
  5. ES报错:Connection reset by peer 解决经历
  6. web前端常用知识点
  7. C 文件读写 容易疏忽的一个问题
  8. Canvas入门06-线段与像素边界
  9. linux 双线,linux 双线接入方案
  10. Unity2020.1新功能探路:Profiler相关更新
  11. SQL Server中的报表–结合T-SQL和DAX查询以生成有效的报表
  12. NoSQL数据库:从故障中恢复数据的原理
  13. 道硕改革宗神学院课表简略
  14. Uml工具StarUML破解
  15. 视频格式转换软件哪个快又好用?视频转换器苹果mac版推荐
  16. 金蝶专业版怎么反过账当月_金蝶KIS专业版没有反过账功能,怎么反过账
  17. 假设检验实例(python)
  18. 计算机数字音乐合成技术 fm,● 计算机数字音乐合成技术主要有(13)两种方式,其中使用(14)合成的音乐,其音质更好。(13)A. FM和AM - 扁豆云问答...
  19. CF407C Curious Array
  20. 京东打单发货如何识别疫情地区?

热门文章

  1. Java防止Xss注入json_浅谈 React 中的 XSS 攻击
  2. 电脑壁纸励志_励志文案丨关于学习的文案,大家加油!
  3. 哪些学校招计算机类在职研究生,2020计算机科学与技术在职研究生有哪些院校可以报考?...
  4. mysql课程设计案例_JAVA中MySQL建立连接
  5. ppp chap 加密摘要_“网络工程师培训”基础教程:一文读懂PPP协议
  6. Mysql:好好的索引,为什么要下推?
  7. GitHub 标星 7000+,面试官的灵魂 50 问,问到你怀疑人生!
  8. 10个可以快速用Python进行数据分析的小技巧
  9. 10 个不可不知的 Python 图像处理工具 !
  10. pyecharts官方文档_中国疫情地图pyecharts