目录 第1章服务计算: Web新时代的计算1 1.1Web时代的变革1 1.2服务2 1.3服务计算的发展4 1.4API时代的到来10 本章习题16 第2章Web服务技术方案: 从RPC到REST17 2.1探寻Web运行的终极原理17 2.2从RPC到ROA24 2.3ROA与RPC的比较31 2.4RESTful服务的优势32 本章习题34 第3章资源和表述36 3.1资源的本质36 3.2表述的本质38 3.3超媒体与HATEOAS41 3.4HTTP的语义46 3.5操作资源52 本章习题53 第4章认识RESTful资源: 以地图服务为例54 4.1基于位置的服务54 4.2认识资源型的服务56 4.3用地图API写最简单的地图应用61 本章习题71第5章领域驱动的服务设计72 5.1领域模型与领域驱动设计72 5.2理解领域、识别资源、划分服务74 5.3理解行为、设计表述78 5.4客户端与服务端的设计81 5.5REST成熟度模型84 本章习题88 第6章设计只读的资源服务89 6.1资源分析与设计89 6.2设计资源表述95 6.3把资源互相链接起来100 6.4规划服务交互的响应102 本章习题104 第7章REST安全性和与用户有关的资源设计105 7.1REST安全性设计105 7.2用户也是一种资源114 7.3设计用户资源114 本章习题118 第8章设计可读写的资源服务119 8.1资源分析与设计119 8.2暴露一个统一接口的子集121 8.3设计来自客户端的表述121 8.4设计发给客户端的表述122 8.5将多种资源整合到一起123 8.6规划服务交互的响应125 本章习题127 第9章设计更好的服务: 咖啡店的启发128 9.1一个典型的服务系统——咖啡店128 9.2统一标准的咖啡需要统一标准的集成129 9.3RESTful服务设计方案131 9.4咖啡店案例的启发137 本章习题139 第10章RESTful服务开发(Jersey)140 10.1RESTful服务开发的范畴140 10.2JAXRS与Jersey142 10.3使用IDEA搭建基于Jersey的RESTful服务148 10.4最简单的RESTful服务——HelloService149 10.5在项目中增加JSON格式支持152 10.6模拟数据CRUD操作158 10.7真正的数据库CRUD操作161 10.8文件操作176 10.9打包并部署服务183 本章习题185 第11章开发RESTful服务客户端186 11.1Jersey Client开发客户端186 11.2Java客户端案例188 11.3微信小程序调用RESTful服务197 本章习题202 第12章OpenAPI规范与设计203 12.1RESTful API的工作原理203 12.2OpenAPI规范204 12.3OpenAPI工具Swagger211 12.4在项目中引入Springfox Swagger212 本章习题223 第13章微服务架构简介224 13.1微服务架构模式224 13.2微服务架构的特性与挑战225 13.3Spring Cloud Netflix体系227 13.4Spring Cloud微服务架构233 13.5微服务架构案例234 本章习题238 第14章智能药品柜数据服务开发案例239 14.1理解智能药品柜业务场景239 14.2设计智能药品柜数据服务244 14.3开发智能药品柜数据服务247 附录ASpring构建超媒体驱动的RESTful Web服务案例250 附录BHTTP协议响应代码255 附录C百度地图资源访问程序源码259 附录DSwagger Petstore OpenAPI263