第 1 章 REST 简介 1.1 API 与 REST API 是一个系统向外暴露或公开的一套接口,通过这些接口,外部应用程序能够访问该系统 REST 是一种基于资源的架构风格,任何能够命名的对象都是一个资源...,如 user,一个资源具有一个统一的资源标识符(URI),如 user/1234,通过 URI 能够标识并访问该资源 REST 定义了6个架构约束: 客户端-服务器 统一接口 分层系统 缓存 无状态...HTTP 协议来传递浏览器与服务器之间的请求与响应的 HTTP 协议采用请求/响应模型 HTTP 协议采用明文传输数据,这种方式并不安全,所以后来设计了 HTTPS 协议 统一资源定位符(URL)代表网络上一个特定的资源...对资源的增删改查等操作名称不应该包含在 URL 中 如果一个操作无法对应到资源的某个操作上,此时可以适当地在 URI 中包含动词,但仍然应该基于一个资源的标识符 查询字符串可以用来对资源进行筛选、搜索或分页查询...,文档中的所有元素形成一棵文档树 XML 每个标签之间还必须要正确的嵌套,另外,标签名区分大小写,标签允许包含一个或多个属性,每个属性的值必须使用引号 JSON 比 XML 更简洁,容易解析,但是不支持注释
9、HTTP协议的特点 10、URL(统一资源定位符) 11、URL语法格式组成 12、协议http规定数据传输的方式 13、请求分为两种:GET POST 14、数据传递的格式 15、HTTP...7、网络编程基本概念 客户端(Client):移动应用(iOS、Android、Web等应用) 服务器(Server):为客户端提供服务、提供数据、提供资源等机器 请求(Request):客户端向服务器索取数据的一种行为...9、HTTP协议的特点 1、支持客户端服务器端模式 2、支持快速简单 3、灵活 4、无连接 5、无状态 10、URL(统一资源定位符) 是互联网标准的资源地址,HTTP使用URL建立连接和传输数据。...:标识网络资源(文件、图片、音视频、变量等等) 查询参数:传递给资源路径对应的数据,查询参数内部用&隔分多个键值对 13、请求分为两种:GET POST GET:提交的数据显示在地址栏,不安全,提交的数据量有限制...一个规范的接口文档要包含以下信息 资源路径:协议、域名、请求方法、接口描述 请求参数:请求头Content-Type描述请求体的数据类型 请求体:实现该接口使用的数据及对应类型 返回数据:状态码200
在本地调用中,函数体是直接通过函数指针来指定的,但是在远程调用中,函数指针是不行的,因为两个进程的地址空间是完全不一样的。 所以在 RPC 中,所有的函数都必须有自己的一个 ID。...在本地调用中,我们只需要把参数压到栈里,然后让函数自己去栈里读就行。 但是在远程过程调用时,客户端跟服务端是不同的进程,不能通过内存来传递参数。...5、RESTful API 架构 RESTful的几个特点为:资源、统一接口、URI 和无状态。 资源所谓”资源”,就是网络上的一个实体,或者说是网络上的一个具体信息。...URL:可以用一个 URI(统一资源定位符)指向资源,即每个 URI 都对应一个特定的资源。要获取这个资源,访问它的 URI 就可以,因此 URI 就成了每一个资源的地址或识别符。...无状态:所谓无状态的,即所有的资源,都可以通过 URI 定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。有状态和无状态的区别。
将处理后的数据批量返回给用户的响应 response 用户的请求 request 浏览器向服务发送的请求在 Django 中是一个 request 对象,该兑现更包含了用户的信息、请求内容和请求方法,...path('whiskey/', views.Whiskey.as_view()) 启动应用,在浏览器中访问 /quebec/whiskey/ 三、RESTful 规范 RESTFUL是一种网络应用程序的设计风格和开发方式...) DELETE(DELETE):从服务器删除资源 URI:每一个URI(统一资源定位符)指向一个特定的资源。...通过URI来访问资源。最典型的URI就是URL。 无状态:所有的资源,都可以通过URI定位,而且这个定位与其他资源无关。例如无需登录就可以通过URL查看,就是无状态。需要登录才能查看,是有状态。...RESTful 风格使使请求路径变得更加简洁,传递、获取参数值更加方便,并且框架会自动进行类型转换。
:资源是以json(或其他Representation)为载体的、面向用户的一组数据集,资源对信息的表达倾向于概念模型中的数据 无状态:所谓无状态的,即所有的资源,都可以通过URI定位...URI:可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。...要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或识别符 (4) 设计原则: 网络上的所有事物都被抽象为资源 每个资源都有一个唯一的资源标识符...(响应端)不保存任何与特定HTTP请求相关的资源,应用状态必须由请求方在请求过程中提供。...从使用方面看,Http接口只关注服务提供方(服务端),对于客户端怎么调用,调用方式怎样并不关心,通常情况下,客户端使用Http方式进行调用时,只要将内容进行传输即可,这样客户端在使用时,需要更关注网络方面的传输
2,内容 2.1 RESTful 接口 REST即表述性状态传递(Representational State Transfer,简称REST),是一种软件架构风格。...Rest架构的主要原则: 网络上的所有事物都被抽象为资源 每个资源都有一个唯一的资源标识符 同一个资源具有多种表现形式(xml,json等) 对资源的各种操作不会改变资源标识符 所有的操作都是无状态的...其中无状态通信,是指服务端(响应端)不保存任何与特定HTTP请求相关的资源,应用状态必须由请求方在请求过程中提供。...REST使用HTTP+URI+XML /JSON 的技术来实现其API要求的架构风格:HTTP协议和URI用于统一接口和定位资源,文本、二进制流、XML、JSON等格式用来作为资源的表述。...满足REST约束条件和原则的架构,就被称为是RESTful架构。就像URL都是URI(统一资源标识)的表现形式一样,RESTful是符合REST原则的表现形式。
在开发实践中我们很多人可能还是使用传统API进行请求交互,很多人其实并不特别了解RESTful API,对RESTful API的认知可能会停留在: 面向资源类型的 是一种风格 (误区)接口传递参数使用斜杠...URI指向资源:URI = Universal Resource Identifier 统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串。...URI包括URL和URN,在这里更多时候可能代指URL(统一资源定位符)。RESTful是面向资源的,每种资源可能由一个或多个URI对应,但一个URI只指向一种资源。...URL设计规范 URL为统一资源定位器 ,接口属于服务端资源,首先要通过URL这个定位到资源才能去访问,而通常一个完整的URL组成由以下几个部分构成: URI = scheme "://" host...且POST请求的请求参数都是请求体中,其大小是没有限制的。 在本案例中,我们设计以下POST请求的API。 POST /dogs :服务端新增一个dog资源。
的尾部传递参数的 post请求是在请求空白行的位置传递参数的 ② 传参的大小不同 get请求,其传参的最大值为2kb post请求理论上是没有任何限制的,但是实际应用中,受到php.ini文件的影响,一般为...接口中的方法也天生就是要被子类实现的。 抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承。在应用中选择抽 象类还是接口要看具体实现。...MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。 MVC所指的就是在软件设计中一种编程模式。...1、301 MovedPermanently:被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。永久重定向。...2、302 Move temporarily:请求的资源临时从不同的URI响应请求。
可以使软件更简洁,更有层次,更易于实现缓存等机制 REST原则: 客户端和服务器之间的交互在请求之间是无状态的 分层系统 RESTful的关键 定义可表示流程元素或资源的对象: 在REST中,每一个对象都是通过...可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源.要获取这个资源访问它的URI就可以,因此URI就成了每一个资源的地址或识别符.一般的,每个资源至少有一个URI与之对应,最典型的...URI就是URL 无状态:所有的资源都可以URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而变化。...API不允许一个尾部的斜杠,不应该将它们包含在提供给客户端的链接的结尾处.两个不同的URI映射到两个不同的资源.如果URI不同,那么资源也是如此,反之亦然.因此,RESTful API必须生成和传递精确的...URI,不能容忍任何的客户端尝试不精确的资源定位.
REST 遵循 web 应用程序的体系结构风格,用户通过类似于选择翻页链接去往下一页的方式访问web应用程序。REST基于唯一URI标识的资源。...统一接口 统一的接口 (如 HTTP HTTP GET, POST, DELETE, PUT) 用于访问资源。...一个RESTful定位web系统有下列特征: URI 统一资源标识符-这是互联网上资源的唯一标记。web上的每个资源都有这样一个唯一标识符-通用标识符 (例如, URL)。...设计RESTful服务 设计RESTful服务的第一步是确定需要公开的资源,然后是把这些资源映射到url。我们不应该局限在应用的方法设计上面,而是应该致力于设计资源的url。...WCF运行时的基础工作是监听处理来自网络位置的消息,并将他们传递给应用程序(服务),使用WCF开发REST应用程序是一项简单的任务。
但是在实例应用中则会进行一系列的封装,如 RMI 便是在 TCP 协议上传递可序列化的 Java 对象。...简单对比 RPC 和 Restful API RESTful API 架构 REST 最大的几个特点为:资源、统一接口、URI 和无状态。...③URL 可以用一个 URI(统一资源定位符)指向资源,即每个 URI 都对应一个特定的资源。 要获取这个资源,访问它的 URI 就可以,因此 URI 就成了每一个资源的地址或识别符。...④无状态 所谓无状态的,即所有的资源,都可以通过 URI 定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。有状态和无状态的区别,举个简单的例子说明一下。...且这种情况下,员工工资是一个资源,由一个 URI 与之对应,可以通过 HTTP 中的 GET 方法得到资源,这是典型的 RESTful 风格。
3、序列化与反序列化 : 当A服务器上的应用发起远程过程调用时,方法的参数需要通过底层的网络协议如TCP传递到B服务器,由于网络协议是基于二进制的,内存中的参数的值要序列化成二进制的形式,也就是序列化(...网络上的所有事物都被抽象为资源 2. 每个资源都有一个唯一的资源标识符 3. 同一个资源具有多种表现形式(xml,json等) 4. 对资源的各种操作不会改变资源标识符 5. ...其中无状态通信,是指服务端(响应端)不保存任何与特定HTTP请求相关的资源,应用状态必须由请求方在请求过程中提供。...REST使用HTTP+URI+XML /JSON 的技术来实现其API要求的架构风格:HTTP协议和URI用于统一接口和定位资源,文本、二进制流、XML、JSON等格式用来作为资源的表述。...从使用方面看,Http接口只关注服务提供方(服务端),对于客户端怎么调用,调用方式怎样并不关心,通常情况下,客户端使用Http方式进行调用时,只要将内容进行传输即可,这样客户端在使用时,需要更关注网络方面的传输
通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。...2 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。...请求体:承载传输的具体数据,不过请求体中的数据表现形式有三种,这三种都是通过form表单的enctype属性来决定的 application/x-www-form-urlencoded:会对中文进行URL...满足这些约束条件和原则的应用程序或设计就是 RESTful。...你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。
restful风格接口 URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。...REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口); 2....Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。...1、REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露。...7、返回有用的错误信息(message) 8、非资源请求用动词,这看起似乎和1中的说法有矛盾,但这里指的是非资源,而不是资源 -- 完 --
需要注意的是:RESTful是一种软件架构风格,而不是标准,它只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。...下面我们结合REST原则,围绕资源展开讨论,从资源的定义、获取、表述、关联、状态变迁等角度,列举一些关键概念并加以解释。 资源与URI 统一资源接口 资源的表述 资源的链接 状态的转移 1....资源 REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。 所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。...你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。...总结 综合上面的解释,我们总结一下什么是RESTful架构: (1)每一个URI代表一种资源; (2)客户端和服务器之间,传递这种资源的某种表现层; (3)客户端通过四个HTTP动词,对服务器端资源进行操作
你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。...RESTFul综述 (1)每一个URI代表一种资源; (2)客户端和服务器之间,传递这种资源的某种表现层; (3)客户端通过HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。...在SOA中,服务隐藏有内在的复杂性。他们只使用交互消息,服务接受和发送消息。通过虚拟化一个服务为黑盒子,服务变得更松散的耦合。...(3) SOA服务应该是自定义 (4)SOA服务维持在一个列表中: SOA服务保持在一个中央存储库。应用程序可以在中央存储库中搜索服务,并调用相应服务。...SOA设计思想: (1)不同厂商服务互操作,前提依赖开放的标准(soap消息通信技术) (2)跨平台 (3)服务插拔(可组合) (4)服务重用 (5)松耦合 RESTFul与SOA的共同点 (1)统一的服务契约接口与服务接口
但是在实例应用中则会进行一系列的封装,如 RMI 便是在 TCP 协议上传递可序列化的 Java 对象。...:资源、统一接口、URI 和无状态。...③URL 可以用一个 URI(统一资源定位符)指向资源,即每个 URI 都对应一个特定的资源。 要获取这个资源,访问它的 URI 就可以,因此 URI 就成了每一个资源的地址或识别符。...④无状态 所谓无状态的,即所有的资源,都可以通过 URI 定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。有状态和无状态的区别,举个简单的例子说明一下。...且这种情况下,员工工资是一个资源,由一个 URI与之对应,可以通过 HTTP 中的 GET 方法得到资源,这是典型的 RESTful 风格。
介绍 应用程序编程接口(API)设计自计算机早期就已经存在 - 程序员不久之后就意识到明确定义的一组方法或功能有助于促进方案交流。...接口模型 RESTful服务使用统一的接口,将架构解耦并分解成以下四个约束。 资源鉴定 资源使用统一资源标识符(URI)命名。资源与返回给客户端的结果不同。...超媒体作为应用状态引擎(HATEOAS) RESTful客户端在访问URI路径时,能够发现所有可用的动作和资源,避免了对信息进行任何硬编码的需要。...路径:正在请求的资源的唯一标识符。 参数:请求中包含的元素,用于过滤或指定请求期间使用的键值对。...API安全 安全模型 RESTful应用程序依赖于API生态系统的底层安全性,而不是在REST架构风格中包含安全性。
在SaaS当中,应用程序可以像任何服务一样被传递,就像你家中电话的语音一样,看起来似乎就是为你的需求量体裁衣得到的。而SOA的定义和这个无丝毫的联系。...在实现SOA的诸多方案中,REST被认为是最适合互联网应用的架构,符合REST规范的架构也经常被称作RESTful架构。...RESTful架构具有简洁、可扩展、易于理解和实现、与不同编程语言和平台无关等优点,因此在Web服务、移动应用、IoT等领域得到广泛应用。...URI。可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。...一般的,每个资源至少有一个URI与之对应,最典型的URI就是URL。 无状态。所谓无状态即所有的资源都可以URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而变化。
准备工作 在上一篇博客中,我们搭建了一个注册中心,一个服务提供者,一个ribbon消费者客户端,现在我们也需要这三个组件来做Ribbon 服务消费 GET请求 在RestTemplate中,对GET请求可以通过如下两个方法进行调用实现...HttpStatus(常用的404,500这些错误),在它的父类HttpEntity中还存储着HTTP请求的头信息对象HttpHeaders以及泛型类型集合的请求体对象。...URI 和 URL 的关系: URI : 统一资源标志符: URL: 统一资源定位符 URN : 统一资源名称 三者之间的关系: ?...了解完GET请求后,再来看一下POST请求: 在RestTemplate中,POST请求可以用一下几种方式来实现 // postForEntity postForEntity(String url,...Restful中的put请求经常用来修改某些属性的值,他和POST请求相似 一般形式 /* * 它的形式比较少,只有一种比较形式 */ put(String url, Object request,
领取专属 10元无门槛券
手把手带您无忧上云