rest - REST 资源是否允许随时间变化?

标签 rest

我想实现一个REST API(对于本例中的视频游戏),并希望使其尽可能无状态(身份验证将是唯一的状态)。

我仍然对无状态的真正含义感到很困惑:例如,连续两次调用

api.myhost.com/users/{playerid} 

可以及时提供2个不同的答案,例如:

{name: "toto", life: 98, score: 52}

{name: "toto", life: 12, score: 378}

问题:

  • 访问同一资源时提供不同的答案是否会被视为破坏 REST API 的无状态条件?
  • 在这种情况下改变规则(时间对资源的影响)是否被视为可接受的做法?
  • 如果不是,由于我想要表示的现实具有状态(随时间变化),我该如何将其转换为无状态模型?

最佳答案

您所描述的 - API 随着时间的推移返回不同的值 - 完全没问题。这不是“无国籍”所指的。

“无状态”意味着每个 REST 调用应该是独立的:服务器不存储有关客户端的任何(或很多)信息。客户端的状态(例如,他们在搜索结果的哪个页面上,或者他们是否登录)不会存储在服务器上;客户端每次发出新请求时都必须重新发送。

Here is a much more in-depth answer to a related question.

关于rest - REST 资源是否允许随时间变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36179789/

相关文章:

rest - 找不到公共(public) javax.ws.rs.core.Response 类型的参数的注入(inject)源 - Jersey - MultiPartFeature

http - HTTP Header 或 Response Body 中的 Rest 错误消息?

javascript - 在 Strongloop 环回模型中自动增加属性值

rest - 为什么要同时进行单元测试和功能测试

java - 是否可以在 Spring Boot 应用程序中发现端点参数?

rest - HATEOAS 是否暗示查询字符串不是 RESTful?

ajax - Mongodb 总行数限制

java - 如何使用 Hibernate\Spring Data 将 json 转换为 java 对象数据并保存到数据库中?

java - Spring 休息站?

javascript - 创建自定义休息客户端