作品简介

国内首本完整、深度地讲解如何基于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简史
  • 参考资料
  • 后记
展开全部