书刊介绍
《Java RESTful Web Service实战(第2版)》内容简介
迫不及待,这是我想为读者更新REST服务新发展的心情,遂有此第2版。首先,我们要拥抱Java 8。lambda表达式在大数据处理,尤其在Spark中是默认的语法表达;Java 8带给我们的不只是“语法糖”,而是开发和执行效率的提升。我从实践中得到了其中的好处,也希望读者能跟上时代的步伐。
其次是Spring Boot,这是Java领域实现微服务的事实标准框架。我已经无法回去适应部署war到Tomcat的时代,请保守的读者原谅我的情不自禁。再次是Docker,我希望读者具备使用Docker完成开发自测阶段的一切,也希望读者能运用Docker实现微服务的部署和可伸缩实践。作品目录
第2版序一
第2版序二
第1版序一
第1版序二
前言
第1章:JAX-RS2入门
1.1、解读REST
1.1.1、一种架构风格
1.1.2、基本实现形式
1.2、解读REST服务
1.2.1、REST式的Web服务
1.2.2、对比RPC风格
1.2.3、对比MVC风格
1.3、解读JAX-RS标准
1.3.1、JAX-RS2标准
1.3.2、JAX-RS2的目标
1.3.3、非JAX-RS2的目标
1.3.4、解读JAX-RS元素
1.4、Jersey项目概要
1.4.1、获得Jersey
1.4.2、Jersey问答
1.4.3、Jersey项目管理
1.4.4、Jersey许可
1.4.5、Jersey的模块
1.4.6、GlashFish项目
1.5、快速实现Java
REST服务
1.5.1、第一个REST服务
1.5.2、第一个Servlet容器服务
1.6、快速了解Java
REST服务
1.6.1、REST工程类型
1.6.2、REST应用描述
1.7、Java领域的其他REST实现
1.7.1、JAX-RS的其他实现
1.7.2、其他的REST实现
1.8、REST调试工具
1.8.1、命令行调试工具
1.8.2、基于浏览器的图形化调试插件
1.9、本章小结
第2章:REST
API设计
2.1、统一接口
2.1.1、GET方法
2.1.2、PUT方法
2.1.3、DELETE方法
2.1.4、POST方法
2.1.5、WebDAV扩展方法
2.2、资源定位
2.2.1、资源地址设计
2.2.2、@QueryParam注解
2.2.3、@PathParam注解
2.2.4、@FormParam注解
2.2.5、@BeanParam注解
2.2.6、@CookieParam注解
2.2.7、@Context注解
2.3、传输格式
2.3.1、基本类型
2.3.2、文件类型
2.3.3、InputStream类型
2.3.4、Reader类型
2.3.5、XML类型
2.3.6、JSON类型
2.4、连通性
2.4.1、过渡型链接
2.4.2、结构型链接
2.5、处理响应
2.5.1、返回类型
2.5.2、处理异常
2.6、内容协商
2.6.1、@Produces注解
2.6.2、@Consumes注解
2.7、本章小结
第3章:REST请求处理
3.1、Jersey的AOP机制
3.2、Providers详解
3.2.1、实体Providers
3.2.2、上下文Providers
3.3、REST请求流程
3.4、REST过滤器
3.4.1、ClientRequestFilter
3.4.2、ContainerRequestFilter
3.4.3、ContainerResponseFilter
3.4.4、ClientResponseFilter
3.4.5、访问日志
3.5、REST拦截器
3.6、绑定机制
3.6.1、名称绑定
3.6.2、动态绑定
3.7、优先级
3.8、本章小结
第4章:REST服务与异步
4.1、为什么使用异步机制
4.1.1、服务器异步机制
4.1.2、客户端异步机制
4.2、JAX-RS2的异步机制
4.2.1、服务端实现
4.2.2、客户端实现和测试
4.3、基于HTTP1.1的异步通信
4.3.1、Polling技术
4.3.2、Comet技术
4.3.3、Web
Hook异步通信
4.3.4、SSE技术
4.4、基于HTML5的异步通信
4.4.1、SSE的原理
4.4.2、发布—订阅模式的实现
4.4.3、广播模式的实现
4.4.4、WebSocket技术
4.5、本章小节
第5章:REST客户端
5.1、客户端接口
5.1.1、Client接口
5.1.2、WebTarget接口
5.1.3、Invocation接口
5.2、连接池
5.2.1、资源释放
5.2.2、连接器
5.2.3、HTTP连接池
5.3、封装Client
5.4、请求Spring
Boot微服务
5.4.1、不同的JSON解析方式
5.4.2、完整示例
5.5、JavaScript客户端
5.5.1、jQuery客户端
5.5.2、AngularJs客户端
5.6、本章小结
第6章:REST测试
6.1、Jersey测试框架
6.2、单元测试
6.2.1、集成Spring的单元测试
6.2.2、异步测试
6.3、集成测试
6.4、日志增强
6.5、本章小结
第7章:微服务
7.1、微服务技术栈
7.1.1、服务发现
7.1.2、可伸缩性
7.1.3、回到起点
7.2、REST服务与Spring
Boot
7.2.1、Bootiful
7.2.2、RESTful
7.2.3、Actuator
7.3、REST服务与Spring
Cloud
7.3.1、Spring
Cloud
Zookeeper
7.3.2、Spring
Cloud
Consul
7.3.3、Spring
Cloud
Etcd
7.4、本章小结
第8章:容器化
8.1、容器技术
8.1.1、容器
8.1.2、Docker技术栈
8.1.3、容器文化
8.2、REST服务与容器
8.2.1、开始容器化之路
8.2.2、开发自测容器化
8.3、容器化微服务
8.3.1、Zookeeper
8.3.2、Kafka
8.3.3、微服务
8.3.4、Nginx
8.4、本章小结
第9章:JAX-RS调优
9.1、使用缓存优化负载
9.1.1、缓存协商
9.1.2、条件GET
9.1.3、REST缓存实践
9.1.4、ab测试
9.2、使用版本号优化服务
9.2.1、何时使用版本号
9.2.2、如何使用版本号
9.3、使用参数配置优化服务
9.3.1、通用配置
9.3.2、服务器端和客户端配置类
9.4、Java虚拟机调优
9.4.1、虚拟机概述
9.4.2、内存溢出与内存泄漏
9.5、本章小结
第10章:REST安全
10.1、身份认证
10.1.1、基本认证
10.1.2、摘要认证
10.1.3、表单认证
10.1.4、证书认证
10.2、资源授权
10.2.1、容器管理权限
10.2.2、应用管理权限
10.3、认证与授权实现
10.3.1、基本认证与JDBCRealm
10.3.2、摘要认证与UserDatabaseRealm
10.3.3、表单认证与DataSourceRealm
10.3.4、Form认证和JAASRealm
10.3.5、证书认证与UserDatabaseRealm
10.4、JAX-RS2实现
10.4.1、Application类
10.4.2、资源类
10.4.3、资源测试类
10.5、REST服务与OAuth2、10.5.1、OAuth2概述
10.5.2、OAuth2流程
10.5.3、OAuth2实现
10.6、本章小结
参考资料