在本文中,我们将了解不同类型的 Web 服务。此外,我们将专注于 RESTful Web 服务。
网络服务
在 Web 上托管和运行的可互操作服务,可以由不同的独立客户端(如 Web 浏览器)访问。
网络服务的类型
- REST( 表示 状态 转移 )
- SOAP ( 简单 对象 访问 协议 )
-
JAX-RS 2.0 规范支持 RESTful Web 服务的实现。
-
这种类型的不同供应商实现是:
-
阿帕奇CXF
-
JBoss RestEasy
-
Oracle Jersey(2.x 之前的版本)
-
Glassfish 球衣 (2.x)
-
肥皂
- JAX-WS 2.0 规范支持基于 SOAP 的 Web 服务的实现。
-
这种类型的不同供应商实现是:
- JAX-WS 即自上而下和自下而上的方法
- 阿帕奇 Axis2
资料来源: BenchResources.net 团队
在这篇特别的文章中,我们将讨论和学习基于 JAX-RS 2.0 规范的 Restful Web 服务。在后面的文章中,我们将使用 Apache 的 CXF (Celtix + XFire)来实现演示示例。
RESTful 网络服务
在 REST of World 中,您将所有内容都称为资源,并且使用 URI 对其进行唯一标识,即; 统一 资源 标识符 。 REST 服务器和客户端通过四个广泛分类的 HTTP 动词使用无状态 HTTP 协议进行交互,即。
- POST - 到 C REATE/插入资源
- GET - 读取 /选择/检索内部资源
- PUT - 更新 /修改资源
- DELETE - 删除 /删除内部资源表示
注意: 这形成了 CRUD
SQL 和 HTTP 动词之间的关系
行动
|
数据库 |
HTTP 动词 |
创造
|
插入 |
邮政 |
读
|
选择 |
得到 |
更新
|
更新 |
放 |
删除
|
删除 |
删除 |
RESTful Web 服务支持的格式
- XML
- JSON
- 文本
- 图像
- HTML
- ETC
RESTful Web 服务的优点
- REST 架构模式本质上基本上是轻量级的。因此,当您有带宽限制时,则更喜欢 REST Web 服务。
- 开发简单快捷。
- 像 Twitter、Yahoo 这样的顶级网站使用这种模式。
- 大多数社交网站(如 Facebook.com)都使用 REST 网络服务。
- 移动应用程序开发快速增长,对于服务器交互,它使用这种 REST 模式,因为它可以更快地处理请求/响应数据。
JAX-RS 注释
在开发基于 REST 的 Web 服务时,这些是最常用的 JAX-RS 注释 。在接下来的文章中,我们将理解和使用这些注解并实现演示示例。
- @Path (javax.ws.rs.路径)
- @GET (javax.ws.rs.GET)
- @POST (javax.ws.rs.POST)
- @PUT (javax.ws.rs.PUT)
- @DELETE (javax.ws.rs.DELETE)
- @PathParam (javax.ws.rs.PathParam)
- @QueryParam (javax.ws.rs.QueryParam)
- @MatrixParam (javax.ws.rs.MatrixParam)
- @FormParam (javax.ws.rs.FormParam)
- @HeaderParam (javax.ws.rs.HeaderParam)
- @Context (javax.ws.rs.core.Context)
- @Consumes (javax.ws.rs.Consumes)
- @Produces (javax.ws.rs.Produces)
@Path注解
- @Path 指定相对URI路径
- 它可以在 类级别 或 方法级别 定义
- 让我们通过一个例子来理解
任何 Web 应用程序的基本 URL 是:
将 web.xml 中的 <url-pattern> 标记附加为基本 URL,形成:
http://<server>:<port>/<context-root>/<url-pattern>
附加类级@Path(“ 类级 ”)注解,然后附加方法级@Path(“ 方法级 ”)注解,形成:
http://<server>:<port>/<context-root>/<url-apptern>/<class-level>/<method-level>
通过后续文章中的示例详细了解其他注释
参考
- 阿帕奇 CXF: http://cxf.apache.org/docs/jax-rs.html
- JBoss RestEasy: http://docs.jboss.org/resteasy/docs/3.0.7.Final/userguide/html/
- 球衣:https: //jersey.java.net/download.html
- 红帽: https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.0/html/Developing_RESTful_Web_Services/files/RESTIntro.html
- 休息:http: //rest.elkstein.org/