如何让服务器 API 告诉客户端 API 有更新可用
How to make a server API tell a client API that an update is available
我让休息客户端 API 通过 /read
端点从我的服务器访问数据。但是,我有一个 internal batch service
调用我服务器的 /write
端点来更新数据。因此,来自服务器的数据会不时更新。我如何告诉客户端数据已更新并要求它再次调用 /read
端点以获取最新数据?
下面是场景的高级图表。
尝试学习 webhooks?基本上,客户端将 "subscribe" 到您的 webhook,或者为了更容易,客户端将向服务器提供一个端点。每当有更新时,您的服务器只向客户端发送请求。客户端 应该简单地调用一个服务 ,只要它从 webhook 收到请求,就会获取 read
.
基本上是这样的
- 客户端订阅服务器
- 客户端给服务器端点
/updateAvailable
- 当有更新时,服务器向客户端端点发送请求
/updateAvailable
- '/updateAvailable' 调用调用'/read'的服务
“/updateAvailable”端点可以调用更新内容的服务。假设发送的请求有一个参数
{
"updateFound":true
}
所以每当客户端的'/updateAvailable'被调用并收到请求时,你就会做这样的事情(伪代码)
if (updateBody.updateFound.message=true)
then call read()
编辑
通过为客户端创建端点,您还可以进行自动更新。所以客户端有一个 /updateAvailable
端点。服务器将更新发送到 /updateAvailable
端点,该端点从客户端调用用于 /read
的任何服务
您的问题有两种解决方案:
使用 restful 客户端上的计时器每隔 N seconds/minutes 向 restful 服务器请求...但是,这确实是个坏主意,因为它必须请求多次访问服务器,即使没有更新数据。
使用第三方基于发布-订阅的消息协议解决方案,在有新数据更新时实现推送通知功能。这些解决方案是:Google FCM、MQTT、AMQP
我让休息客户端 API 通过 /read
端点从我的服务器访问数据。但是,我有一个 internal batch service
调用我服务器的 /write
端点来更新数据。因此,来自服务器的数据会不时更新。我如何告诉客户端数据已更新并要求它再次调用 /read
端点以获取最新数据?
下面是场景的高级图表。
尝试学习 webhooks?基本上,客户端将 "subscribe" 到您的 webhook,或者为了更容易,客户端将向服务器提供一个端点。每当有更新时,您的服务器只向客户端发送请求。客户端 应该简单地调用一个服务 ,只要它从 webhook 收到请求,就会获取 read
.
基本上是这样的
- 客户端订阅服务器
- 客户端给服务器端点
/updateAvailable
- 当有更新时,服务器向客户端端点发送请求
/updateAvailable
- '/updateAvailable' 调用调用'/read'的服务
“/updateAvailable”端点可以调用更新内容的服务。假设发送的请求有一个参数
{
"updateFound":true
}
所以每当客户端的'/updateAvailable'被调用并收到请求时,你就会做这样的事情(伪代码)
if (updateBody.updateFound.message=true)
then call read()
编辑
通过为客户端创建端点,您还可以进行自动更新。所以客户端有一个 /updateAvailable
端点。服务器将更新发送到 /updateAvailable
端点,该端点从客户端调用用于 /read
您的问题有两种解决方案:
使用 restful 客户端上的计时器每隔 N seconds/minutes 向 restful 服务器请求...但是,这确实是个坏主意,因为它必须请求多次访问服务器,即使没有更新数据。
使用第三方基于发布-订阅的消息协议解决方案,在有新数据更新时实现推送通知功能。这些解决方案是:Google FCM、MQTT、AMQP