REST学习(二)

来源:互联网 发布:淘宝手机版店招制作 编辑:程序博客网 时间:2024/05/17 01:38

搞清楚用的是什么,怎么用:

REST 应用以“资源表述的转移(the transfer of representations of resources)”为中心来做请求和响应。

  • URI定位资源
  • 用HTTP动词(GET,POST,DELETE,DETC)描述操作

REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)。增删改查都是一个地址,具体靠http头部信息判断。

  • URL中只使用名词来指定资源,原则上不使用动词。
  • Resources(资源)是REST架构或者说整个网络处理的核心

通俗讲就是:资源在网络中以某种表现形式进行状态转移

分解开来:

  • Resource:资源,即数据(前面说过网络的核心)

  • Representational:某种表现形式,比如用JSON,XML,JPEG等

  • State Transfer:状态变化。通过HTTP动词实现。

数据和功能均被视为资源,用统一资源标识符(URI)来访问资源。网页里面的链接就是典型的 URI。该资源由文档表述,并使用一组简单的、定义明确的操作来执行。
比如,一个 REST 资源可能是一个城市当前的天气情况。该资源的表述可以是一个XML文档,图像文件,或 HTM L页面。客户端可以检索特定表述,通过更新其数据修改的资源,或者完全删除该资源。

通过 URI 来标识资源:

系统中的每一个对象或是资源都可以通过一个唯一的 URI 来进行寻址。

统一接口:

显式地使用 HTTP 方法,建立CRUD(创建Create、检索Retrieve、更新Update、删除Delete)操作与 HTTP 方法之间的一对一映射:

  • 若要在服务器上创建资源,用 POST 方法;

  • 若要检索某个资源,用 GET 方法;

  • 若要更新或者添加资源,用 PUT 方法;

  • 若要删除某个资源,用 DELETE 方法。

资源多重表述:

Server和Client之间传递某资源的一个表现形式,比如用JSON,XML传输文本,或者用JPG,WebP传输图片等。URI 所访问的每个资源都可以使用不同的形式加以表示( XML 或JSON等等),具体的表现形式取决于访问资源的客户端,客户端与服务提供者使用一种内容协商的机制(请求头与 MIME 类型)来选择合适的数据格式,最小化彼此之间的数据耦合。
在 REST 的世界中,资源即状态,而互联网就是一个巨大的状态机,每个网页是其一个状态;URI 是状态的表述;REST 风格的应用则是从一个状态迁移到下一个状态的状态转移过程。

无状态:

用 HTTP Status Code传递Server的状态信息。

  • 对服务器端的请求应该是无状态的,完整、独立的请求不要求服务器在处理请求时检索任何类型的应用程序上下文或状态。

  • 无状态约束使服务器的变化对客户端是不可见的

为啥是不可见的

比如在两次连续的请求中,客户端并不依赖于同一台服务器。一个客户端从某台服务器上收到一份包含链接的文档,当它要做一些处理时,这台服务器挂掉了——如果这个客户端访问了从这台服务器接收的链接,客户端不会察觉到后台的服务器已经改变了。通过超链接实现有状态交互,即请求消息是自包含的(每次交互都包含完整的信息),有多种技术实现了不同请求间状态信息的传输,例如 URI ,cookies 和隐藏表单字段等,状态可以嵌入到应答消息里,这样状态在接下来的交互中仍然有效。
REST 风格应用在状态迁移的过程中,服务器不需要记录任何 Session,所有的状态都通过 URI 的形式记录在了客户端。也就是说,无状态服务器,是指服务器不保存会话状态(Session);而资源本身则是天然的状态,通常是需要被保存的;这里所指无状态服务器均指无会话状态服务器。

HTTP请求方法在RESTful Web服务中的应用:

  • 一组资源的URI:

    • GET:列出URI;以及该资源组中每个资源的详细信息。(后者可选)

    • PUT:使用给定的一组资源替换当前整组资源。

    • POST:在本组资源中创建/追加一个新的资源。(该操作往往返回新资源的URL)

    • DELETE:删除整组资源。

  • 单个资源的URI:

    • GET:获取指定的资源的详细信息,格式可以自选一个合适的网络媒体格式(比如XML、JSON)

    • PUT:替换/创建指定的资源。并将其追加到相应的资源组中。

    • POST:把指定的资源当作一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源。

    • DELETE:删除指定的元素。

Maven的项目结构:

  • 标准的管理配置文件pom.xml

  • 源文件路径src/main/java

  • 资源文件路径src/main/resources

  • web应用文件src/main/webapp

JAX-RS 资源

JAX-RS 资源是一个可以处理绑定了资源的URI的HTTP请求的带有注解的POJO。

从看代码开始

导入项目:

  • Step1:

    在Eclipse project explorer中右击,在弹出框中选择import,得到如下图所示:

选择要导入的Maven项目

  • Step2:

    选择Existing Maven Projects,并点击Next,得到如下图所示对话框:

这里写图片描述

注意
将pom.xml前面的框选上,因为工作空间已经导入该项目,所以无法演示勾选!

选择一个已经创建好的Maven项目,并点击Finish。
由此,导入Maven项目成功。

  • Step3:运行Maven命令

    右击项目,点击Run as,如下图:

这里写图片描述

即可看到有很多现有的maven命令,点击即可运行,并在控制台可以看到运行信息。
如果想运行的maven命令在这里没有找到,点击Maven build创建新的命令,操作如下图所示:

这里写图片描述

新增的maven命令可以通过如下方式找到,并再次运行:

这里写图片描述

重点注意:

Maven本地仓库地址一定不要包含汉字!尤其win10系统下,若是用户名是汉字,Maven仓库地址默认路径是在C盘下用户文件夹下的.m2文件夹中
这里写图片描述

aaa是电脑的用户名,若是中文用户名在构建项目时会报错,可以从控制台的输出信息中看到相关的提示,其中就会包含该路径信息错误,导致项目构建不成功。
若是用户名已经为中文,win10家庭版已经将修改用户名的功能阉割,可以通过修改Maven的setting文件中的本地仓库默认地址来解决这个问题,新定义的仓库地址一定不要包含汉字!

Eclipse编辑器相关设置:

  • 关闭验证

    在工具栏选择Window下面的Perferences

这里写图片描述

然后按照下图所示,将验证关闭

这里写图片描述

  • Eclipse的Java的JDK设置:

    同样时在工具栏选择Window下面的Perferences,然后进行如下操作:

    这里写图片描述

默认的是指向Java的jre路径,点击Edit选项将其改为指向jdk路径,如下图所示:

这里写图片描述

  • Eclipse的Maven设置

这里写图片描述

  • Eclipse的Server设置

    同样时在工具栏选择Window下面的Perferences,然后进行如下操作:

这里写图片描述

选择Runtime Environment后点击Add按钮

这里写图片描述

这里写图片描述

Window-Show View-Servers,增加Server,选择上一步的TomEE完成后,双击上一步中的Server

这里写图片描述

勾选如下内容并保存:

这里写图片描述

数据源创建后,注意要将对应的驱动jar放到tomee的lib中,这里用的是ojdbc7.jar包。

设置jsp修改后热部署

在Servers项目中的“TomEE localhost-config”修改web.xml,找到jsp的Servlet配置,修改development参数为true。

这样项目的运行环境就设置好了,可以将项目部署到这里运行访问。

启动项目,浏览器中访问

 http://localhost:8080/项目名称

即可进行访问。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米4s黑屏了怎么办 鼠标的左键失灵怎么办 小米5左键失灵怎么办 小米4左键失灵怎么办 小米5s左键失灵怎么办 单击鼠标左键就会自动删除?怎么办 华为五s开不开机怎么办 荣耀8关不了机怎么办 三星s7左键失灵怎么办 华为mate7死机黑屏了怎么办 小米手机max黑屏打不开怎么办 小米max开不了机怎么办 小米6接听电话声音小怎么办 小米手机接听电话声音小怎么办 小米5听筒声音小怎么办 红米手机不能开机怎么办 小米5x升级失败怎么办 安卓手机打电话黑屏怎么办 来电话就出黑屏怎么办 oppo手机停留在开机界面怎么办 小米4c死机了怎么办 苹果手机拨打电话时黑屏怎么办 华为畅享6黑屏怎么办 手机拨号键盘变小了怎么办 小米5s手机黑屏打不开怎么办 小米5s黑屏只能开关机怎么办 手机拨号键没了怎么办 华为手机桌面拨号图标不见了怎么办 华为手机拨号图标不见了怎么办 小米4s屏幕显示黑屏怎么办 平板拨号键没了怎么办 华为手机拨号图标没了怎么办 华为荣耀手机进水了怎么办 华为畅享7黑屏怎么办 华为畅玩7x黑屏怎么办 华为手机打电话时黑屏怎么办 三星a8手机黑屏打不开怎么办 华为手机恢复出厂后黑屏怎么办 华为荣耀4c白屏怎么办 华为荣耀6手机信号不好怎么办 华为荣耀8手机音量小怎么办