Java RESTful Web Service实战

Java RESTful Web Service实战

Java RESTful Web Service实战

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
5.829 评价豆瓣读书
免费试读

作品简介

国内首本完整、深度地讲解如何基于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. Java RESTful Web Service实战
  2. 推荐序一 ——REST开发的理想与现实
  3. 推荐序二
  4. 前言
  5. 第一篇 够用就好——JAX-RS 2.0基础
  6. 第1章 JAX-RS 2.0入门
  7. 1.1 解读REST
  8. 1.1.1 一种架构风格
  9. 1.1.2 基本实现形式
  10. 1.2 解读REST服务
  11. 1.3 解读JAX-RS
  12. 1.4 Jersey项目概要
  13. 1.5 Java领域的其他REST实现
  14. 1.5.1 其他JAX-RS实现
  15. 1.5.2 其他REST实现
  16. 1.6 本章小结
  17. 第2章 JAX-RS 2.0快速实现
  18. 2.1 第一个Java REST服务
  19. 2.1.1 环境准备
  20. 2.1.2 创建服务
  21. 2.1.3 扩展服务
  22. 2.1.4 测试和运行服务
  23. 2.2 第一个Servlet容器服务
  24. 2.2.1 创建和分析Web服务
  25. 2.2.2 Jetty插件与REST服务
  26. 2.2.3 运行在Servlet容器
  27. 2.2.4 运行在Java EE容器
  28. 2.3 REST服务类型
  29. 2.4 REST应用描述
  30. 2.4.1 应用的描述
  31. 2.4.2 资源的描述
  32. 2.4.3 WADL的配置
  33. 2.5 第一个完整的REST服务
  34. 2.5.1 定义资源
  35. 2.5.2 集成Spring
  36. 2.5.3 集成JPA
  37. 2.5.4 集成jQuery
  38. 2.5.5 请求处理流程分析
  39. 2.6 REST调试工具
  40. 2.6.1 命令行调试工具cURL
  41. 2.6.2 基于浏览器的图形化调试插件
  42. 2.7 本章小结
  43. 第3章 REST API设计
  44. 3.1 REST统一接口
  45. 3.1.1 GET方法
  46. 3.1.2 PUT方法
  47. 3.1.3 DELETE方法
  48. 3.1.4 POST方法
  49. 3.1.5 WebDAV扩展方法
  50. 3.2 REST资源定位
  51. 3.2.1 资源地址设计
  52. 3.2.2 @QueryParam注解
  53. 3.2.3 @PathParam注解
  54. 3.2.4 @FormParam注解
  55. 3.2.5 @BeanParam注解
  56. 3.2.6 @CookieParam注解
  57. 3.2.7 @Context注解
  58. 3.3 REST传输格式
  59. 3.3.1 基本类型
  60. 3.3.2 文件类型
  61. 3.3.3 InputStream类型
  62. 3.3.4 Reader类型
  63. 3.3.5 XML类型
  64. 3.3.6 JSON类型
  65. 3.4 REST连通性
  66. 3.4.1 过渡型链接
  67. 3.4.2 结构型链接
  68. 3.5 REST响应处理
  69. 3.5.1 返回类型
  70. 3.5.2 处理异常
  71. 3.6 REST内容协商
  72. 3.6.1 @Produces注解
  73. 3.6.2 @Consumes注解
  74. 3.7 本章小结
  75. 第4章 REST请求处理
  76. 4.1 REST和AOP
  77. 4.2 Providers详解
  78. 4.2.1 实体Providers
  79. 4.2.2 上下文Providers
  80. 4.3 REST请求流程
  81. 4.4 REST过滤器
  82. 4.4.1 ClientRequestFilter
  83. 4.4.2 ContainerRequestFilter
  84. 4.4.3 ContainerResponseFilter
  85. 4.4.4 ClientResponseFilter
  86. 4.4.5 访问日志
  87. 4.5 REST拦截器
  88. 4.6 绑定机制
  89. 4.7 优先级
  90. 4.8 本章小结
  91. 第5章 REST客户端
  92. 5.1 客户端接口
  93. 5.1.1 Client接口
  94. 5.1.2 WebTarget接口
  95. 5.1.3 Invocation接口
  96. 5.2 资源释放
  97. 5.3 连接器
  98. 5.4 封装Client
  99. 5.5 本章小结
  100. 第二篇 全面掌握——JAX-RS 2.0进阶
  101. 第6章 REST安全
  102. 6.1 身份认证
  103. 6.1.1 基本认证
  104. 6.1.2 摘要认证
  105. 6.1.3 表单认证
  106. 6.1.4 证书认证
  107. 6.2 资源授权
  108. 6.2.1 容器管理权限
  109. 6.2.2 应用管理权限
  110. 6.3 认证与授权实现
  111. 6.3.1 基本认证与JDBCRealm
  112. 6.3.2 摘要认证与UserDatabaseRealm
  113. 6.3.3 表单认证与DataSourceRealm
  114. 6.3.4 表单认证与JAASRealm
  115. 6.3.5 证书认证与UserDatabaseRealm
  116. 6.4 JAX-RS 2.0实现
  117. 6.5 其他安全考虑
  118. 6.6 本章小结
  119. 第7章 REST测试
  120. 7.1 Jersey测试框架
  121. 7.2 单元测试
  122. 7.2.1 集成Spring的单元测试
  123. 7.2.2 异步测试
  124. 7.3 集成测试
  125. 7.4 日志增强
  126. 7.5 本章小结
  127. 第8章 REST推送与异步通信
  128. 8.1 服务器—浏览器通信
  129. 8.1.1 Polling技术
  130. 8.1.2 Comet技术
  131. 8.1.3 SSE技术
  132. 8.1.4 WebSocket技术
  133. 8.2 SSE详述
  134. 8.2.1 Java并发
  135. 8.2.2 SSE流程
  136. 8.2.3 SSE实现
  137. 8.3 异步通信
  138. 8.4 JAX-RS 2.0实现异步通信
  139. 8.4.1 服务端实现
  140. 8.4.2 客户端实现和测试
  141. 8.5 本章小结
  142. 第9章 Jersey 1.x迁移
  143. 9.1 变更Maven依赖定义
  144. 9.2 客户端迁移
  145. 9.2.1 Client接口迁移
  146. 9.2.2 WebTarget接口迁移
  147. 9.2.3 QueryParam
  148. 9.3 服务器端迁移
  149. 9.4 本章小结
  150. 第10章 JAX-RS调优
  151. 10.1 使用缓存优化负载
  152. 10.1.1 缓存协商
  153. 10.1.2 条件GET
  154. 10.1.3 REST缓存实践
  155. 10.1.4 ab测试
  156. 10.2 使用版本号优化服务
  157. 10.2.1 何时使用版本号
  158. 10.2.2 如何使用版本号
  159. 10.3 使用参数配置优化服务
  160. 10.3.1 通用配置
  161. 10.3.2 服务器端配置
  162. 10.3.3 客户端配置
  163. 10.4 Java虚拟机调优
  164. 10.4.1 虚拟机概述
  165. 10.4.2 内存溢出与内存泄漏
  166. 10.5 本章小结
  167. 第三篇 实践分享——JAX-RS 2.0综合
  168. 第11章 统一自动化测试平台
  169. 11.1 ATUP的定义
  170. 11.1.1 需求仓库
  171. 11.1.2 需求分析
  172. 11.1.3 迭代规划
  173. 11.2 ATUP的设计
  174. 11.2.1 开发和部署环境
  175. 11.2.2 模块定义和拓扑
  176. 11.2.3 持续集成流程
  177. 11.3 ATUP的实现
  178. 11.3.1 Sprint1核心功能
  179. 11.3.2 Sprint2模块功能
  180. 11.3.3 Iteration1的演示和回顾
  181. 11.3.4 Sprint 3持续交付
  182. 11.3.5 交付和总结
  183. 11.4 本章小结
  184. 附录 Web简史
  185. 参考资料
  186. 后记
载入中

热门划线

  1. ,若需要公布像借阅、折旧、电子版下载等实际生活中的更新操作的接口时,仅公布一个PUT方法就不够用了。这些操作是动词性的,无法简单地使用一个book名词就能定位。在路径变量难以准确描述的情况下,一种方案是可以考虑使用动词作为查询参数;另一种方案是可以在REST设计过程中引入RPC风格的POST方法,辅助完成复杂业务的接口设计,这就是REST和RPC混合型的Web服务了4 人
  2. 资源类位于逻辑分层的最高层——API层,其下为Service层和数据访问层2 人
  3. integration-test阶段的前后各有一个扩展点pre和post,Jetty插件就是在这两个点启动和停止内置的Jetty服务器的2 人
  4. Jetty插件多用于Web服务的调试和集成测试,在该阶段通过以后,通常会将该项目部署到以Tomcat为代表的Servlet容器来搭建测试环境和运行环境2 人
  5. REST应用的描述:以XML格式展示当前REST环境中所提供的REST服务接口。这种XML格式的描述就是WADL。2 人
  6. REST服务的核心是对外公布的资源API。2 人
  7. 定义资源通常包括资源实体及其表述的设计、资源路径的定义,最后是使用JAX-RS 2.0对定义好的资源API进行编码实现2 人
  8. 笔者秉持的是ROA风格,修改使用PUT方法,新增使用POST方法。这看似字面略有不同的定义背后,是对REST式的Web服务的正确解读。定义资源路径就是设计REST接口的过程,一方面需要对业务有深刻的理解,另一方面需要对REST风格有真知灼见2 人
  9. 在每个方法中,具体业务逻辑由使用@Autowired注解的业务逻辑类BookService来处理,见关注点1。@Autowired是Spring的IoC容器自动探测Bean实例所使用的注解。需要注意的是,Jersey内部使用的IoC容器是HK2,因此集成Spring需要扩展包才能实现。2 人
  10. 系统启动时,Spring会根据该配置扫描com.example路径下所有类,将注解为@component的类以及注解为@Service这样的本身使用了@component注解的类加载2 人

喜欢这本书的人也喜欢