我有一个UI(角度),作为Spring引导应用程序托管, UI与REST API(Jersey)对话。 当整个应用程序或其中的一部分进行维护时:REST:处理网站维护
1)我不确定,如何向任何现在访问的人显示维护网页(它应该是角度还是弹簧引导,后端,以及如何?)。
2)对于已经在网站某个部分的用户,我如何通知他们他们需要刷新。
3)对于已经在网站某个部分的用户,如果他们没有刷新,并且以后在维护结束后,如果他们发送带有一些旧的无效数据的POST请求,我该如何检查?
注意:该网站没有任何用户验证。
作为第三点的示例: UI显示数据库中记录的列表,并且用户正在对其中一个记录进行更改,同时后端进入维护状态。现在,此用户提交更改后的数据,当后端再次可用时。但是这个数据现在是无效的。我怎么能识别,并可能通知用户。
感谢您的相当详细的解释。 是的,通过更新我的意思是数据库我会改变和新的记录可能会被添加。关于第二个问题,如果某些记录被添加到数据库(或删除),如果当前用户正在他的屏幕上使用这些记录,那么现在它是无效的,并且如果他在更改后将更改的记录提交回API ,那么我需要确定它来自旧页面,可能忽略它。 – gaurav5430
在这种情况下,我会生成一个当前状态的哈希值,并将其作为ETag头与响应一起发送,并且如果在维护过程中某些记录的状态发生更改(通过您应用的任何逻辑),尝试更新记录一个处理了无效数据的客户端应该会失败,因为前提条件没有得到满足(当前ETag值与用户尝试更新的值不同)。如果在维护期间没有更改状态并且用户更新“旧”状态,则更新将成功,因为旧数据等于更新前的状态,因此不会出现冲突。 –