具体描述
国内首本完整、深度地讲解如何基于Java标准规范实现REST风格的Web服务的专著,阿里巴巴Java技术专家12年开发经验结晶,3位业内著名技术专家联袂推荐!不仅深刻解读了最新的JAX-RS标准和其API设计,以及Jersey的使用要点和实现原理,而且系统讲解了REST的基本理论,更重要的是从实践角度深度讲解了如何基于Jersey实现完整的、安全的、高性能的REST式的Web服务。
《Java RESTful Web Service实战》共11章,分为三篇。第一篇(第1~5章)系统讲解了REST的基本理论和Jersey的基本实践,旨在帮助读者具备使用Java开发REST式的Web服务的基本能力。第二篇(第6~10章)深入讲解了写好REST程序的必要知识点,旨在帮助读者全面了解如何写好一个完整的、安全的、高性能的REST式的Web服务。第三篇(第11章)分享了笔者5年外企工作生涯中对自动化测试和敏捷的体会,希望可以帮助读者更宏观地审视REST的应用场景,给读者启发。
作者简介
韩陆,毕业于北京航空航天大学,资深Java技术专家,从业12年,曾在用友(总部)、新浪、Avaya和Technicolor等知名企业从事研发工作,现就职于阿里巴巴(总部),从事敏捷和自动化测试的研发工作,实践经验非常丰富。常活跃于InfoQ、CSDN等技术传播平台,曾经在多种大小技术会议和沙龙上分享自己的经验。《JSF和Richfaces使用指南》作者,《Java EE 7 Essentials》译者。
目录信息
第1 章 JAX-RS 2.0 入门
1.1 解读REST
1.1.1 一种架构风格
1.1.2 基本实现形式
1.2 解读REST 服务
1.3 解读JAX-RS
1.4 Jersey 项目概要
1.5 Java 领域的其他REST 实现
1.5.1 其他JAX-RS 实现
1.5.2 其他REST 实现
1.6 本章小结
第2 章 JAX-RS 2.0 快速实现
2.1 第一个Java REST 服务
2.1.1 环境准备
2.1.2 创建服务
2.1.3 扩展服务
2.1.4 测试和运行服务
2.2 第一个Servlet 容器服务
2.2.1 创建和分析Web 服务
2.2.2 Jetty 插件与REST 服务
2.2.3 运行在Servlet 容器
2.2.4 运行在Java EE 容器
2.3 REST 服务类型
2.4 REST 应用描述
2.4.1 应用的描述
2.4.2 资源的描述
2.4.3 WADL 的配置
2.5 第一个完整的REST 服务
2.5.1 定义资源
2.5.2 集成Spring
2.5.3 集成JPA
2.5.4 集成jQuery
2.5.5 请求处理流程分析
2.6 REST 调试工具
2.6.1 命令行调试工具cURL
2.6.2 基于浏览器的图形化调试插件
2.7 本章小结
第3 章 REST API 设计
3.1 REST 统一接口
3.1.1 GET 方法
3.1.2 PUT 方法
3.1.3 DELETE 方法
3.1.4 POST 方法
3.1.5 WebDAV 扩展方法
3.2 REST 资源定位
3.2.1 资源地址设计
3.2.2 @QueryParam 注解
3.2.3 @PathParam 注解
3.2.4 @FormParam 注解
3.2.5 @BeanParam 注解
3.2.6 @CookieParam 注解
3.2.7 @Context 注解
3.3 REST 传输格式
3.3.1 基本类型
3.3.2 文件类型
3.3.3 InputStream 类型
3.3.4 Reader 类型
3.3.5 XML 类型
3.3.6 JSON 类型
3.4 REST 连通性
3.4.1 过渡型链接
3.4.2 结构型链接
3.5 REST 响应处理
3.5.1 返回类型
3.5.2 处理异常
3.6 REST 内容协商
3.6.1 @Produces 注解
3.6.2 @Consumes 注解
3.7 本章小结
第4 章 REST 请求处理
4.1 REST 和AOP
4.2 Providers 详解
4.2.1 实体Providers
4.2.2 上下文Providers
4.3 REST 请求流程
4.4 REST 过滤器
4.4.1 ClientRequestFilter
4.4.2 ContainerRequestFilter
4.4.3 ContainerResponseFilter
4.4.4 ClientResponseFilter
4.4.5 访问日志
4.5 REST 拦截器
4.6 绑定机制
4.7 优先级
4.8 本章小结
第5 章 REST 客户端
5.1 客户端接口
5.1.1 Client 接口
5.1.2 WebTarget 接口
5.1.3 Invocation 接口
5.2 资源释放
5.3 连接器
5.4 封装Client
5.5 本章小结
第二篇 全面掌握--JAX-RS 2.0 进阶
第6 章 REST 安全
6.1 身份认证
6.1.1 基本认证
6.1.2 摘要认证
6.1.3 表单认证
6.1.4 证书认证
6.2 资源授权
6.2.1 容器管理权限
6.2.2 应用管理权限
6.3 认证与授权实现
6.3.1 基本认证与JDBCRealm
6.3.2 摘要认证与UserDatabase-Realm
6.3.3 表单认证与DataSource-Realm
6.3.4 表单认证与JAASRealm
6.3.5 证书认证与UserDatabase-Realm
6.4 JAX-RS 2.0 实现
6.5 其他安全考虑
6.6 本章小结
第7 章 REST 测试
7.1 Jersey 测试框架
7.2 单元测试
7.2.1 集成Spring 的单元测试
7.2.2 异步测试
7.3 集成测试
7.4 日志增强
7.5 本章小结
第8 章 REST 推送与异步通信
8.1 服务器-浏览器通信
8.1.1 Polling 技术
8.1.2 Comet 技术
8.1.3 SSE 技术
8.1.4 WebSocket 技术
8.2 SSE 详述
8.2.1 Java 并发
8.2.2 SSE 流程
8.2.3 SSE 实现
8.3 异步通信
8.4 JAX-RS 2.0 实现异步通信
8.4.1 服务端实现
8.4.2 客户端实现和测试
8.5 本章小结
第9 章 Jersey 1.x 迁移
9.1 变更Maven 依赖定义
9.2 客户端迁移
9.2.1 Client 接口迁移
9.2.2 WebTarget 接口迁移
9.2.3 QueryParam
9.3 服务器端迁移
9.4 本章小结
第10 章 JAX-RS 调优
10.1 使用缓存优化负载
10.1.1 缓存协商
10.1.2 条件GET
10.1.3 REST 缓存实践
10.1.4 ab 测试
10.2 使用版本号优化服务
10.2.1 何时使用版本号
10.2.2 如何使用版本号
10.3 使用参数配置优化服务
10.3.1 通用配置
10.3.2 服务器端配置
10.3.3 客户端配置
10.4 Java 虚拟机调优
10.4.1 虚拟机概述
10.4.2 内存溢出与内存泄漏
10.5 本章小结
第三篇 实践分享--JAX-RS 2.0 综合
第11 章 统一自动化测试平台
11.1 ATUP 的定义
11.1.1 需求仓库
11.1.2 需求分析
11.1.3 迭代规划
11.2 ATUP 的设计
11.2.1 开发和部署环境
11.2.2 模块定义和拓扑
11.2.3 持续集成流程
11.3 ATUP 的实现
11.3.1 Sprint1 核心功能
11.3.2 Sprint2 模块功能
11.3.3 Iteration1 的演示和回顾
11.3.4 Sprint3 持续交付
11.3.5 交付和总结
11.4 本章小结
附录 Web 简史
参考资料
后记
· · · · · · (收起)
读后感
最近正在赶着上手做java RESTful Web Service。正好阅读《Java RESTful Web Service实战》通篇下来,感觉知识点覆盖的比较广,涉及到REST的设计,开发和测试各个方面。介绍了JSR以及Jersey中的实现,还有spring的集成。但是感觉作者似乎对这本书的定位有点古怪,看上去是本教程...
感觉这本书主要是讲实战,但经常东一榔头西一棒子,贴代码,翻译文档,但少有洞见.啰嗦的话太多,想看的地方没有.还好有源代码在git上,还可以瞅瞅,浪费时间.不如去看jersey文档.一会讲maven,一会讲jdk,jdk都不会配搞啥java web service,到该说的重点地方就几个字混过去了,不值得花25...
举例说明: 第一章的某一段开头 “AirResourceConfig类在构造子中提供了扫描包的全名” 这只是一个例子,总的来说,我想想讲的是: 我觉得不是我技术不行,而是作者语文水平有问题 我觉得不是我技术不行,而是作者语文水平有问题 我觉得不是我技术不行,而是作者语文水平有问题...
举例说明: 第一章的某一段开头 “AirResourceConfig类在构造子中提供了扫描包的全名” 这只是一个例子,总的来说,我想想讲的是: 我觉得不是我技术不行,而是作者语文水平有问题 我觉得不是我技术不行,而是作者语文水平有问题 我觉得不是我技术不行,而是作者语文水平有问题...
最近正在赶着上手做java RESTful Web Service。正好阅读《Java RESTful Web Service实战》通篇下来,感觉知识点覆盖的比较广,涉及到REST的设计,开发和测试各个方面。介绍了JSR以及Jersey中的实现,还有spring的集成。但是感觉作者似乎对这本书的定位有点古怪,看上去是本教程...
用户评价
这本书绝对是我近期读过最令人印象深刻的IT技术书籍之一。起初,我选择它是因为我对Java RESTful Web Service这个主题有着强烈的学习需求,并且我一直在寻找一本能够兼顾理论深度和实践指导的书籍。这本书的章节设置非常合理,从最基础的概念讲解,到复杂的架构模式,再到实际的部署和性能优化,几乎涵盖了RESTful Web Service开发的全生命周期。我尤其欣赏作者在讲解核心概念时,总是能用非常贴切的比喻和生动的例子,将那些抽象的技术术语变得易于理解。例如,在解释HTTP方法(GET, POST, PUT, DELETE)的作用时,作者并没有止步于定义,而是通过模拟用户在网页上的各种操作,将这些方法与实际用户行为紧密联系起来,让我瞬间豁然开朗。此外,书中对不同框架(如Spring Boot, Jersey)的比较分析也十分到位,作者并没有偏袒任何一方,而是客观地列举了它们的优缺点,并给出了在不同场景下选择的建议,这对于初学者来说非常有价值。读完第一部分,我就感觉自己对RESTful Web Service的理解上升了一个新的台阶,能够清晰地认识到如何设计出优雅、高效且可维护的API。
这本书的阅读体验堪称“丝滑”,仿佛作者是一位经验丰富的导师,循循善诱地引导我一步步走向精通。我印象最深的是书中关于API设计原则的部分,它不仅仅是罗列了一些“应该这样做”的规则,而是深入剖析了“为什么”要这样做。作者花费了大量的篇幅来讲解如何设计具有良好可读性、易于理解且前后一致的API接口,包括URL命名、请求/响应格式、错误处理等方方面面。特别是关于HATEOAS(超媒体作为应用程序状态引擎)的讲解,我之前对这个概念一直有些模糊,但通过书中清晰的图示和代码示例,我终于理解了它在构建高度可伸缩和易于发现的RESTful服务中的核心作用。书中提供的那些“最佳实践”并不是一些生硬的条条框框,而是经过实践检验、能够真正提升开发效率和代码质量的宝贵经验。而且,作者在编写代码示例时,非常注重细节,每一个变量的命名、每一个方法的调用都显得恰到好处,使得我能够轻松地复制、粘贴并运行代码,验证书中的讲解。总而言之,这本书为我构建健壮、可维护的RESTful Web Service打下了坚实的基础。
这本书的内容让我受益匪浅,简直是为我量身定做的学习资料。我尤其被书中关于微服务架构下RESTful API设计的讨论所吸引。在当前的软件开发趋势中,微服务架构已经成为主流,而RESTful API是微服务之间通信的基石。本书非常敏锐地捕捉到了这一趋势,并深入剖析了在微服务环境中设计和实现RESTful API所面临的挑战和解决方案。作者讨论了如何进行服务间的通信,如何处理分布式事务,以及如何在多服务协同工作时保证API的一致性和稳定性。我特别喜欢书中关于API网关的讲解,它清晰地阐述了API网关在微服务架构中的重要作用,包括请求路由、认证授权、负载均衡、监控等功能,并提供了使用Spring Cloud Gateway等框架实现API网关的示例。这让我对如何构建一个现代化、可扩展的微服务系统有了更清晰的认识。而且,书中在单元测试和集成测试方面的指导也非常详细,这对于确保API的质量和可靠性至关重要。
我不得不说,这本书的讲解方式非常独特,它将复杂的概念巧妙地融入到实际的项目开发流程中。我在阅读的过程中,感觉自己不仅仅是在学习技术,更像是在参与一个真实的开发项目。书中提供的项目示例非常完整,从零开始搭建一个功能齐全的RESTful Web Service,包含了数据库连接、数据模型设计、API接口实现、异常处理、日志记录等各个环节。更重要的是,作者在讲解每一个环节时,都清晰地解释了其背后的技术原理和设计思想,让我能够举一反三,将所学知识应用到我自己的项目中。我尤其欣赏书中关于API版本管理的讨论,这是一个在实际开发中经常被忽视但却非常重要的问题。本书提供了多种API版本控制的策略,并给出了相应的实现方法,让我能够避免在API迭代过程中给用户带来不便。读完这本书,我不仅掌握了开发RESTful Web Service的各项技术,更重要的是,我培养了良好的API设计和开发习惯,这对我未来的职业发展将产生深远的影响。
作为一个有着几年Java开发经验的开发者,我对技术书籍的要求一向很高,既要理论扎实,又要实践可行,而这本书恰恰满足了我的所有期待。它不仅仅是一本“how-to”的手册,更像是一本“why-and-how”的指南。我特别欣赏书中对安全性方面的深入探讨。在如今网络安全日益重要的背景下,如何设计和实现安全的RESTful Web Service至关重要。本书详细介绍了OAuth 2.0、JWT(JSON Web Tokens)等主流的认证和授权机制,并提供了详细的配置和实现代码。让我印象深刻的是,作者不仅仅是介绍了这些技术的用法,还解释了它们背后的原理以及在不同安全场景下的应用策略,比如如何防止CSRF攻击、如何进行API限流等。这些内容让我对如何构建一个既开放又安全的Web Service有了更全面的认识。此外,本书在性能优化方面的章节也给了我很大的启发,如何通过缓存、异步处理、数据库优化等手段来提升API的响应速度和吞吐量,这些都是在实际项目中经常会遇到的问题,书中给出的解决方案切实可行,非常具有参考价值。
主要讲的Jemery
一般,半年前看过后现在都没啥印象了
一般般 就是博客文的堆砌水平
所以程序员确实好好利用github
实际是一本讲Jersey的书,写的还算易懂,但经常会扯些别的东西出来,适合定位给刚接触REST的人参考吧。