Java RESTful Web Service实战(第2版) 导读

Java核心技术系列

Java RESTful Web Service实战

(第2版)

韩陆 著

 

半年前初识韩陆的时候,我们就聊到他正在写的这本书,当得知我从2006年就参与了Apache CXF开发,他立即邀请我为他的新书写序,我也就欣然答应了。

Apache CXF作为JAXWS以及JAX-RS规范的实现框架,已经成为很多Web服务开发者必选的开发框架。作为这一框架的开发维护者之一,我的日常工作经常需要熟悉这些JSR规范,并实现JSR所定义的API,解决最终用户的使用问题。

熟悉Java的人大多都听说过JSR(Java Specification Requests)、JCP(Java
Community Process),通过JSR可以就Java某一方面的应用定义一组标准的API或者服务。对于最终用户来说,他们的代码只需要调用JSR定义的标准API,不做任何修改就可以调用不同的JSR实现。这里常见的例子就是Java Servlet应用,用户开发的Web应用可以不做任何修改就部署到Tomcat、JBoss等不同的Web容器中。

JAXRS是JCP为Java RESTful
Web Service定义的一套API。由于Web服务的描述模型与Java类和接口有一定的差距,JAX-RS定义了很多annotation,通过这些annotation我们可以很方便地将Java类描述成为相关的REST服务。由于RESTful Web Service通常需要部署到Web容器中,JAX-RS也定义了相关服务来发现部署到容器中的JAX-RS应用。

读过JSR规范的朋友或多或少都会有这样的体会,JSR作为规范文档,其目标是将API定义以及实现功能描述清楚、完备,其目标读者是相关API的实现人员,或者是相关API的高级使用人员。如果读者对相关的背景知识还不熟悉的话,JSR文档读起来会比较晦涩而且难以理解。加之绝大部分JSR文档都没有相关的中文翻译,对于绝大多数初学者来说,通过阅读JSR文档来学习相关的API的知识是一个艰难的过程。

如果我们想要对JAX-RS规范有一个比较快速并且全面的了解应该怎么办呢?一般来我们可以通过JSR的相关参考实现入手,我们不但可以通过运行相关的参考实现的例子快速入门,还可以通过跟踪相关的代码对实现细节有一个全面的了解。韩陆的这本新作以JAX-RS的参考实现Jersey为蓝本,由浅入深地向大家介绍了JAX-RS的由来,以及与RESTful Web服务开发的相关API,并结合实例分享了作者的实战经验。

好了,现在打开你熟悉的IDE工具,加载Jersey代码库,沿着本书的指引去探索Java RESTful Web Services开发世界吧。

 

第1章 JAX-RS2入门   1

1.1 解读REST       1

1.1.1 一种架构风格    2

1.1.2 基本实现形式    2

1.2 解读REST服务      3

1.2.1 REST式的Web服务  3

1.2.2 对比RPC风格    3

1.2.3 对比MVC风格  4

1.3 解读JAX-RS标准   5

1.3.1 JAX-RS2标准       5

1.3.2 JAX-RS2的目标  5

1.3.3 非JAX-RS2的目标      6

1.3.4 解读JAX-RS元素        7

1.4 Jersey项目概要    7

1.4.1 获得Jersey 8

1.4.2 Jersey问答 8

1.4.3 Jersey项目管理 8

1.4.4 Jersey许可 9

1.4.5 Jersey的模块     10

1.4.6 GlashFish项目    10

1.5 快速实现Java REST服务      12

1.5.1 第一个REST服务       13

1.5.2 第一个Servlet容器服务   17

1.6 快速了解Java REST服务      19

1.6.1 REST工程类型   19

1.6.2 REST应用描述   24

1.7 Java领域的其他REST实现 27

1.7.1 JAX-RS的其他实现     27

1.7.2 其他的REST实现       31

1.8 REST调试工具       33

1.8.1 命令行调试工具         33

1.8.2 基于浏览器的图形化调试插件         34

1.9 本章小结        37

第2章 REST API设计 38

2.1 统一接口        38

2.1.1 GET方法     39

2.1.2 PUT方法     41

2.1.3 DELETE方法        43

2.1.4 POST方法   44

2.1.5 WebDAV扩展方法      45

2.2 资源定位        47

2.2.1 资源地址设计    48

2.2.2 @QueryParam注解   50

2.2.3 @PathParam注解      52

2.2.4 @FormParam注解     55

2.2.5 @BeanParam注解     57

2.2.6 @CookieParam注解  58

2.2.7 @Context注解   58

2.3 传输格式        59

2.3.1 基本类型    59

2.3.2 文件类型    60

2.3.3 InputStream类型        61

2.3.4 Reader类型        62

2.3.5 XML类型    62

2.3.6 JSON类型   66

2.4 连通性   82

2.4.1 过渡型链接         82

2.4.2 结构型链接         83

2.5 处理响应        84

2.5.1 返回类型    85

2.5.2 处理异常    86

2.6 内容协商        89

2.6.1 @Produces注解          89

2.6.2 @Consumes注解       91

2.7 本章小结        92

 

时间: 2024-12-27 03:32:28

Java RESTful Web Service实战(第2版) 导读的相关文章

Java RESTful Web Service实战(第2版)

Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著 图书在版编目(CIP)数据 Java RESTful Web Service实战 / 韩陆著. -2版. -北京:机械工业出版社,2016.7 (Java核心技术系列) ISBN 978-7-111-54213-1 Ⅰ. J-   Ⅱ. 韩-   Ⅲ. JAVA语言-程序设计   Ⅳ. TP312 中国版本图书馆CIP数据核字(2016)第156331号 Java RESTful Web Servi

Java RESTful Web Service实战(第2版) 2.3 传输格式

2.3 传输格式 本节要考虑的就是如何设计表述,即传输过程中数据采用什么样的数据格式.通常,REST接口会以XML和JSON作为主要的传输格式,这两种格式数据的处理是本节的重点.那么Jersey是否还支持其他的数据格式呢?答案是肯定的,让我们逐一掌握各种类型的实现. 2.3.1 基本类型 Java的基本类型又叫原生类型,包括4种整型(byte.short.int.long).2种浮点类型(float.double).Unicode编码的字符(char)和布尔类型(boolean). 阅读指南 本

Java RESTful Web Service实战(第2版) 1.2 解读REST服务

1.2 解读REST服务 RESTful对应的中文是REST式的,RESTful Web Service的准确翻译应该是REST式的Web服务,我们通常简称为REST服务.RESTful的应用或者Web服务是最常见的两种REST式的项目部署.存在的方式.本节将介绍REST服务并对比其与传统Web Services的不同. 1.2.1 REST式的Web服务 RESTful Web Service是一种遵守REST式风格的Web服务.REST服务是一种ROA(Resource-Oriented A

Java RESTful Web Service实战(第2版) 1.3 解读JAX-RS标准

1.3 解读JAX-RS标准 JAX-RS是Java领域的REST式的Web服务的标准规范,是使用Java完成REST服务的基本约定. 1.3.1 JAX-RS2标准 Java领域中的Web Service是指实现SOAP协议的JAX-WS.直到Java EE 6(发布于2008年9月)通过JCP(Java Community Process)组织定义的JSR311(http://www.jcp.org/en/jsr/detail?id=311),才将REST在Java领域标准化. JSR311

Java RESTful Web Service实战(第2版) 1.4 Jersey项目概要

1.4 Jersey项目概要 Jersey是JAX-RS标准的参考实现,是Java领域中最纯正的REST服务开发框架.本节将带读者走近Jersey的世界. Jersey项目是GlashFish项目的一个子项目,专门用来实现JAX-RS(JSR 311 & JSR 339)标准,并提供了扩展特性. 1.4.1 获得Jersey Jersey项目的地址是https://jersey.java.net.该网站同时提供了JAX-RS和JAX-RS2两个并行版本,分别是JAX-RS1.1(截至本书发稿,最

Java RESTful Web Service实战(第2版) 1.5 快速实现Java REST服务

1.5 快速实现Java REST服务 本节包含两个Jersey实战示例,目的是让读者具备快速创建REST服务的能力. 在开始实战之前,首先需要读者确认你的环境是否已经安装了Java和Maven.这里使用Maven命令,示例如下. mvn -v   Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00) Maven home: /usr/local/Cellar/maven/

Java RESTful Web Service实战(第2版) 1.7 Java领域的其他REST实现

1.7 Java领域的其他REST实现 Java领域存在很多REST实现,我们以是否遵循JAX-RS标准,将它们分为两组.前者是JAX-RS标准参考实现之外的厂商实现,后者要么是因为出现较JAX-RS标准早,要么干脆跳出了JAX-RS标准的定义,以自身框架一致性为目标,实现了一套独有的对REST开发的支持.本节将概括性地介绍这些实现工具,以便读者有所对比和选择. 1.7.1 JAX-RS的其他实现 JAX-RS标准发布后,诸多厂商推出了自己的基于JAX-RS标准的实现.其中最有影响力的当属来自J

Java RESTful Web Service实战(第2版) 1.9 本章小结

1.9 本章小结 本章主要讲述了REST服务的概念和实战.先后解读了REST.REST服务.JAX-RS2标准中的重要概念,对JAX-RS2的参考实现项目Jersey进行了简单而全面的概述.随后讲述了如何快速创建REST应用和REST服务,介绍了基于JAX-RS2标准的其他项目和其他非JAX-RS2标准的.著名的Java项目. 通过阅读本章,读者可以清楚地掌握Java领域开发REST服务中的基本概念. 本章主要的知识点如下. REST是什么 一种架构风格. HTTP+URI+XML是REST的基

Java RESTful Web Service实战(第2版) 1.6 快速了解Java REST服务

1.6 快速了解Java REST服务 1.6.1 REST工程类型 在REST服务中,资源类是接收REST请求并完成响应的核心类,而资源类是由REST服务的"提供者"来调度的.这一概念类似其他框架中自定义的Servlet类,该类会将请求分派给指定的Controller/Action类来处理.本节将讲述REST中的这个提供者,即JAX-RS2中定义的Application以及Servlet. Application类在JAX-RS2(JSR339,详见参考资料)标准中定义为javax.