开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术:RESTful操作(一)】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/80/detail/15910
RESTful操作(一)
内容介绍:
一、五种请求方法
二、HTTP状态码
三、GET请求
一、 五种请求
RESTful 操作是 HTTP 的五种请求方法来完成相关操作
RESTful 操作是利用 HTTP 的五种请求的方法来完成相关的操作的,那五种请求方法我们前面说过,分别是 HTTP 的 GET POST PUT PATCH 和 DELETE,这五种方法,分别对应的获得一个资源的信息,新建一个新的资源信息,修改资源信息的所
有属性,修改资源信息的特定属性,以及删除一个资源。
所以利用这五种方法看起来好像只能完成这个资源的增删改查,这个资源的增删改查,那我们知道针对资源的操作,在系统中间是很复杂,我们怎么样用这五种操作配合资源的定义来完成我们在系统中间各种各样复杂的工作?RESTful 的这种 API是怎样来实现的?那我们首先说一下这五种操作的这个返回值,它的返回值,它首先会利用 HTTP 的状态码。
二、HTTP状态码
对我们来说比较有意义的是以200开头的这些状态码,200开头的状态码表示的是操作成功,而且会相对处理,当然它有200,也有201,202。那300开头的这个状态码,其实对我来说没有什么太大的意义,因为300开头的表示是重定向,400开头的表示是客户端的错误,也就是我们前端往后端发请求的时候,如果请求包含了语法错误,比如说这个方法的名不对,那它就会返回404,比如说方法名对的,但是参数不符合要求,或者参数不对,它就会返回403。所以400开头的错误主要是用来描
述客户端的错误。500开头的错误主要是描述服务器的错误,就是服务器在处理的时候内部会产生错误,比如说这个内部的这个数据库掉了,那就会发生这个500的错误。并不是所有状态码都会用到,其中的一些长用的有如下几种
三、GET请求
首先说GET的请求
获得在系统中间的所有的一级分类,我们就会用 get/categories 这样的一个请求,去获得在系统中间的所有的一级商品分类,如果说要获得一个特定的商品分类,就是我们用 get 请求去对应的,它的这个资源的定义,categories/12,就是用来获得ID 为12的一个一级商品分类,如果说要获得在一个分类底下的所有的商品,比如说我们要获得在一级分类底下的所有的商品,categories/12/goods,通过这样的方式,就能够获得 ID 为12的一级分类底下的所有商品,那大家知道,如果说在我们系统中间商品是非常多的,直接获得一级分类底下的所有商品,其实会造成系统的失败的,所以说像获取这么大的数据,我们通常在后面还需要加上它的分页,至于分页怎么加。我们可以看一下后面的例子,那如果说要得到一个一级分类底下的二级分类,我们可以用 get 的请求去访问这个 categories/12/subcategories 这样的一个资源,这样就会得到 ID为12的一级分类底下的所有的二级分类,如果说我们想跟定义一个符合某些条件的这样的一个商品,我们可以用 get goods 去加一个问号,问号后面跟的是这个过滤条件,或者叫查询条件,我们用两个查询,用一个查询条
件,Name 等于电视机,然后我们会跟上它的排序,按照 price,按照价格排序,以及用这个&的符号,用这个&的符号来分割多个这个条件来获得一个商品名称为电视机的价格按照升序排序的这样的一个东西,这就是我们说把用问号加上这个查询或者过滤关键字以后来获得的一个资源,同样我们比如说要获得所有的秒杀商品,我们就像前面获得一个一级分类,底下的所有商品也是类似的,我们需要加上它的这个分页,第几页以及每页多少个商品,所以我们get hot-goods,然后用问号后面跟上两个,这个条件 page 就等于二,然后 pagesize 等于十,这样可以分页的方式,获得秒杀商品中间的第二页,以每页十个商品的方式,把它显示出来。
那get的这样的一种方式,我们可以看到它是用来获取一个资源的,所以一个 get 所获得的这个资源通常是,我们的最后一个名词。比如说我们前面例子中间看到的,要获得一级分类底下的二级分类,所以它是 categories/一底下的subcategories,它所返回的是我们在整个 URL 中间的最后的那个名词,就是我们要获得的东西,那 get 的返回值,特定的返回值,如果说是获得对象成功的话,它的 HTTM 的返回状态码为200。