Web服务层的构建可以说是开发Spring Boot应用程序最主要的工作,现实中几乎所有互联网应用程序都需要对外提供各种形式的Web服务。在本章中,我们的讨论的对象是轻量级Web服务,其表现形式就是通过HTTP暴露的一组端点。Spring Boot为开发轻量级Web服务提供了一系列解决方案。
Spring Boot框架提供的第一套解决方案就是WebMVC,这是基于MVC(Model View Controller,模型-视图-控制器)架构设计并实现的经典技术组件。开发人员使用一组基础注解就可以开发Controller,并暴露RESTful风格的HTTP端点。而对服务消费,我们则可以使用RestTemplate模板工具类。
Spring Boot框架提供的第二套解决方案是HATEOAS,这是在整个REST成熟度模型中位于最高层次的技术组件。通过Spring HATEOAS,我们能够开发超媒体组件,并实现自解释的Web API。
最后,在前后端分离的开发模式下,开发人员面临的一大挑战是如何设计合理且高效的前后端交互Web API。这时候就可以引入Spring Boot框架提供的第三套解决方案,即Spring GraphQL。GraphQL是一种图驱动的查询语言,可以用来设计并实现满足前后端高效交互所需的数据格式、返回结果、请求次数以及请求地址。
本章将对上述Spring Boot框架所提供的三套开发轻量级Web服务的解决方案展开详细的讨论,并给出精简而又完整的代码案例。