RESTful Web 服务简介——JAX-RS 规范

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

在本文中,我们将了解不同类型的 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 服务的实现。
  • 这种类型的不同供应商实现是:
    1. JAX-WS 即自上而下和自下而上的方法
    2. 阿帕奇 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
  • PDF
  • 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 是:

http://<服务器>:<端口>/<上下文根>

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>

通过后续文章中的示例详细了解其他注释

参考