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

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

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

在本文中,我们将了解不同类型的 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>

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

参考

相关文章