java - 使用来自静态 Web 服务端点调用的响应,稍后在其他一些 Web 服务端点调用中使用

标签 java spring rest web-services

我希望一个 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/

相关文章:

spring - 如何获取距离 - MongoDB 模板 Near 函数

java - 创建 Web 服务的最佳实践

java - SPRING:无法使用休息模板在发布请求中传递参数

java - JFrame 没有出现在 ubuntu 中

java - 获取 "Illegal Initial Capacity Error"

java - 如何在基于 Spring 的 Web 服务上提供图像

REST API 分页 - 如何处理超出总计数的偏移量

java - 如何向 URLStreamHandler 提供上下文?

java - 理解工厂方法模式

java - 带有 Rest 接口(interface)的 Spring Mvc Web 应用程序