资源名称:Java RESTful Web Service实战

内容简介:

国内首本完整地、深度地讲解如何基于Java标准规范实现REST风格的Web服务的专著,阿里巴巴资深Java技术专家近10年开发经验结晶,3位业内著名技术专家联袂推荐!不仅深刻解读了最新的JAX-RS标准和其API设计,以及Jersey的使用要点和实现原理,而且还系统讲解了REST的基本理论,更重要的是从实践角度深度讲解了如何基于Jersey实现完整的、安全的、高性能的REST式的Web服务。

全书共11章,分为三篇。第一篇(1~5章)系统讲解了REST的基本理论和Jersey的基本实践,旨在帮助读者具备使用Java开发REST式的Web服务的基本能力。第二篇(6~10章)深入讲解了写好REST程序的必要知识点,旨在帮助读者全面了解如何写好一个完整的、安全的、高性能的REST式的Web服务。第三篇(第11章)分享了笔者5年外企工作生涯中对自动化测试和敏捷的体会,希望可以帮助读者更宏观地审视REST的应用场景,给读者启发。

本书包含对部分源代码的解读,也包含大量示例和实现代码,还包含大型的、完整的项目示例。除此之外,本书还包括“阅读指南”、“小白讲堂”、“宅人坑事”等知识模块,旨在帮助读者能在愉悦中更好地阅读本书。

资源目录:

推荐序一

推荐序二

前言

第一篇 够用就好——JAX-RS 2.0 基础

第1 章 JAX-RS 2.0 入门

1.1 解读REST 2

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实战