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

 

相关文章
|
19天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
17天前
|
设计模式 安全 Java
Java并发编程实战:使用synchronized关键字实现线程安全
【4月更文挑战第6天】Java中的`synchronized`关键字用于处理多线程并发,确保共享资源的线程安全。它可以修饰方法或代码块,实现互斥访问。当用于方法时,锁定对象实例或类对象;用于代码块时,锁定指定对象。过度使用可能导致性能问题,应注意避免锁持有时间过长、死锁,并考虑使用`java.util.concurrent`包中的高级工具。正确理解和使用`synchronized`是编写线程安全程序的关键。
|
19小时前
|
安全 Java 调度
Java线程:深入理解与实战应用
Java线程:深入理解与实战应用
6 0
|
4天前
|
存储 Java 数据库连接
java DDD 领域驱动设计思想的概念与实战
【4月更文挑战第19天】在Java开发中,领域驱动设计(Domain-Driven Design, DDD) 是一种软件设计方法论,强调以领域模型为中心的软件开发。这种方法通过丰富的领域模型来捕捉业务领域的复杂性,并通过软件满足核心业务需求。领域驱动设计不仅是一种技术策略,而且还是一种与业务专家紧密合作的思维方式
21 2
|
8天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
21 0
|
8天前
|
安全 Java API
RESTful API设计与实现:Java后台开发指南
【4月更文挑战第15天】本文介绍了如何使用Java开发RESTful API,重点是Spring Boot框架和Spring MVC。遵循无状态、统一接口、资源标识和JSON数据格式的设计原则,通过创建控制器处理HTTP请求,如示例中的用户管理操作。此外,文章还提及数据绑定、验证、异常处理和跨域支持。最后,提出了版本控制、安全性、文档测试以及限流和缓存的最佳实践,以确保API的稳定、安全和高效。
|
14天前
|
Java API 开发者
Java 8新特性之函数式编程实战
【4月更文挑战第9天】本文将深入探讨Java 8的新特性之一——函数式编程,通过实例演示如何运用Lambda表达式、Stream API等技术,提高代码的简洁性和执行效率。
|
17天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
17 3
|
20天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
20天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发