ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RESTful 风格详解

RESTful 风格详解 一、相关概念1、API应用程序接口概念APIApplication Programming Interface是一些预先定义的函数或者指软件系统不同组成部分衔接的约定。简单来讲就是两种类型一种是jar包A将B需要的程序全部打包给BB可以直接使用。另一种就是WEB应用接口A需要B的部分功能只需要B将对外访问路径提供给AA按照约定的访问方式进行访问.2、RESTful 风格REST是一种组织Web服务的架构 因其具有简单、易读、易用的特点在 web 项目中非常受欢迎在设计接口时如果满足 res 约束条件和原则的应用程序设计或设计就称为 RESTflu 应用.二、RESTful接口设计2.1 路径设计传统请求路径见名知意.RESTful 风格由操作的资源决定一般采用资源名称复数形式例如/users.补充说明RResources表明了资源在RESTful的重要性在RESTful的眼中互联网的一切都是资源都有其唯一标识URI资源定位符.2.2 请求方式传统请求方式一般会忽略.RESTful 风格RESTful 风格在 HTTP 请求方法做好了约定增POST、删DELETE、改PUT、查GET如下1、GETSELECT从服务器中取出资源一项/多项.2、POSTCRATE在服务器新建一个资源.3、PUTUPDATE在服务器中更新资源客户端提供改变后的完整资源PUT 更新整个对象.4、PATCHUPDATE在服务器更新资源客户端提供改变的属性, PATCH 更新个别属性.5、DELETEDELETE从服务器中删除资源.//下面的了解即可6、HEAD获得一个资源的元数据比如一个资源的 hash 值或最后的修改日期.7、OPTIONS获得客户端针对一个资源能够实施的操作.2.3 请求参数和响应请求参数传统风格由需求决定.RESTful 风格由需求决定.请求响应传统风格由需求决定/模板路径RESTful 风格由需求/公司规范决定一般建议响应数据格式是 JSON 格式.RESTful 对响应值做出了较为细致的约定如下GET/collection返回资源对象的列表数组.GET/collection/resource返回单个资源对象.POST/collection返回新生成的资源对象.PUT/collection/resource返回完整的资源对象.PATCH/collection/resource返回完整的资源对象.DELETE/collection/resource返回一个空文档.注意以上数据返回全部采用 JSON 格式.2.4 扩展 — HTTP 响应状态码信息响应 (100–199)常见的响应码及其含义100这个临时响应表明迄今为止的所有内容都是可行的客户端应该继续请求如果已经完成则忽略它.101该代码是响应客户端的 Update 请求头发送的指明服务器即将切换的协议.102此代码表示服务器已收到并正在处理该请求但当前没有响应可用.103此状态代码主要用于与 Link 链接头一起使用以允许用户代理在服务器准备响应阶段时开始预加载 Preloading 资源.成功响应 (200–299)常见的响应码及其含义200请求成功。成功的含义取决于 HTTP 方法.GET: 资源已被提取并在消息正文中传输.HEAD: 实体标头位于消息正文中.PUTorPOST: 描述动作结果的资源在消息体中传输.TRACE: 消息正文包含服务器收到的请求消息.201该请求已成功并因此创建了一个新的资源。这通常是在 POST 请求或是某些 PUT 请求之后返回的响应.202请求已经接收到但还未响应没有结果。意味着不会有一个异步的响应去表明当前请求的结果预期另外的进程和服务去处理请求或者批处理.203服务器已成功处理了请求但返回的实体头部元信息不是在原始服务器上有效的确定集合而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集.204对于该请求没有的内容可发送但头部字段可能有用。用户代理可能会用此时请求头部信息来更新原来资源的头部缓存字段.205告诉用户代理重置发送此请求的文档.206当从客户端发送Range范围标头以只请求资源的一部分时将使用此响应代码.207对于多个状态代码都可能合适的情况传输有关多个资源的信息.208在 DAV 里面使用dav:propstat响应元素以避免重复枚举多个绑定的内部成员到同一个集合.226服务器已经完成了对资源的GET请求并且响应是对当前实例应用的一个或多个实例操作结果的表示.重定向响应(300–399)常见的响应码及其含义300请求拥有多个可能的响应。用户代理或者用户应当从中选择一个.301请求资源的 URL 已永久更改。在响应中给出了新的 URL.302此响应代码表示所请求资源的 URI 已暂时更改.303服务器发送此响应以指示客户端通过一个 GET 请求在另一个 URI 中获取所请求的资源.304这是用于缓存的目的。它告诉客户端响应还没有被修改因此客户端可以继续使用相同的缓存版本的响应.305在 HTTP 规范中定义以指示请求的响应必须被代理访问。由于对代理的带内配置的安全考虑它已被弃用.306此响应代码不再使用它只是保留.307服务器发送此响应以指示客户端使用在前一个请求中使用的相同方法在另一个 URI 上获取所请求的资源.308这意味着资源现在永久位于由Location:HTTP Response 标头指定的另一个 URI.客户端错误响应 (400–499)常见的响应码及其含义客户端错误响应400由于被认为是客户端错误服务器无法或不会处理请求.401用户没有权限.403用户得到权限但是访问被禁止.404用户发出的请求针对的是不存在的记录服务器没有进行操作.406用户请求的格式不可得.410用户请求的资源被永久删除不会再得到.422当创建一个对象时出现验证错误.服务端错误响应 (500–599)常见的响应码及其含义服务端错误响应500服务器遇到了不知道如何处理的情况.
返回列表