7章 调用REST服务

7章 调用REST服务

本章内容:

  • 使用RestTemplate调用REST API
  • 使用Traverson引导超媒体API

你是否曾经去看电影,当电影开始的时候,你发现只有你一个人在电影院?从本质上说,这是一次私人观影的美妙经历。你可以选择任何你想要的座位,和屏幕上的人物交谈,甚至可以打开你的手机发推特谈论它,而不会有人因为破坏了他们的观影体验而生气。最棒的是,也没有其他人会为你毁了这部电影!

这种情况在我身上并不常见。但当它出现的时候,我在想如果我没有出现会发生什么。他们还会放映这部电影吗?英雄还会拯救世界吗?电影结束后,工作人员还会打扫影院吗?

没有观众的电影就像没有客户端的API。它已经准备好接受和提供数据了,但是如果API从未被调用过,那么它真的是一个API吗?就像薛定谔的猫一样,在我们向它发出请求之前,我们无法知道API是活动的还是返回HTTP 404响应。

在前一章中,重点介绍了如何定义REST端点,以供应用程序外部的一些客户端使用。尽管开发这样一个API的驱动力是一个用作Taco Cloud网站的单页面Angular应用程序,但事实是客户端可以是任何语言的任何应用程序 —— 甚至是另一个Java应用程序。

Spring应用程序既提供API,又向另一个应用程序的API发出请求,这种情况并不少见。事实上,在微服务的世界里,这正变得越来越普遍。因此,花点时间看看如何使用SpringREST API交互是值得的。

Spring应用程序可以通过以下方式使用REST API

  • RestTemplate —— 一个由Spring核心框架提供的简单、同步REST客户端。
  • Traverson —— 可感知超链接的同步REST客户端,由Spring HATEOAS提供,灵感来自同名的JavaScript库。
  • WebClient —— 一个在Spring 5中引入的响应式、异步REST客户端。

我将推迟到第11章讨论Spring的响应式web框架的时候再讨论WebClient。现在,我们将主要关注另外两个REST客户端,首先是RestTemplate

上一页