我希望一个 Web 服务调用的响应稍后由其他某个 Web 服务调用使用。我如何实现它的代码流程。我必须保持 session 吗? 我正在使用 Spring、java 创建 Restful Web 服务 如果用户 1 调用端点/getUserRecord,1 分钟后调用/checkUserRecord(它使用第一次调用中的数据),则如何处理它,因为用户 2 可以在用户 1 调用/checkUserRecord 之前调用/getUserRecord 我正在使用 Spring java 创建 RESTFul Web 服务。
谢谢, 阿尔皮特
最佳答案
从技术上讲,您可以将 UserRecord 从 get 传递到 check。
GET/userrecords/--> 返回一条或多条记录
POST/checkUserRecord 将您想要检查的记录作为请求正文。
但我强烈建议您不要这样做。客户端提供的数据不可靠,无法被您的后端代码信任。如果某些 JavaScript 改变了原始数据怎么办?此外,如果您要来回传递一系列数据或异构有效负载,最终会导致客户端和服务器之间的有效负载交换变得一团糟。
正如 Veselin Davidov 所说,您可能应该坚持使用干净的无状态 REST 范例并依赖标识符:
所以
GET/userrecords/--> [ { "id": 1, "data":"myrecorddata"}, ...]
GET/checkUserRecord/{id} 就像/checkUserRecord/1
是的,您必须对数据库进行两次调用。如果您关心的是性能,您可以像 piy26 指出的那样设置一些缓存机制,但是缓存可能会导致您遇到其他问题(如何定义正确且可靠的缓存策略?)。
除非您管理大量数据,否则我认为您应该首先专注于提供具有无状态设计的清晰、可维护且安全可用的 REST API。
关于java - 使用来自静态 Web 服务端点调用的响应,稍后在其他一些 Web 服务端点调用中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50014789/