书刊介绍
《Java RESTful Web Service实战》内容简介
国内首本完整、深度地讲解如何基于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》译者。作品目录
Java
RESTful
Web
Service实战
推荐序一
——REST开发的理想与现实
推荐序二
前言
第一篇
够用就好——JAX-RS
2.0基础
第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、摘要认证与UserDatabaseRealm
6.3.3、表单认证与DataSourceRealm
6.3.4、表单认证与JAASRealm
6.3.5、证书认证与UserDatabaseRealm
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、Sprint
3持续交付
11.3.5、交付和总结
11.4、本章小结
附录
Web简史
参考资料
后记