HTTP GET设置内部数据,仍然被认为是RESTful?

Tom*_*mas 5 rest get http restful-architecture

据我了解,HTTP GET请求应该返回请求的数据,如果安全(只读)和幂等(没有副作用),则认为是RESTful.

但是,我想实现一个服务来显示自上次访问以来使用URI的新项目/items/userid/new,是否可以以任何方式RESTful?

返回数据时,响应GET请求而发送的项目应标记为已读,以便跟踪新内容.标记这些项目将违反安全要求和幂等要求.

这是否意味着.../new从未被视为RESTful?

Cah*_*hit 3

非常有趣的问题。我认为答案是“取决于实施”,因为有不同的解决方案可以满足业务需求。

如果同一用户对 URL 的每次访问/items/userid/new都会修改数据库记录,那么这不是一种“安全方法”,并且不符合普遍接受的 REST 模式。

如果您正在过滤视图上的新项目,但每次 GET 调用都没有任何相应的数据库更改,那么它肯定是 RESTful。例如:

/items/userid/new?lastvisit=2015-12-31
Run Code Online (Sandbox Code Playgroud)

或者

/items/userid/new?last_id=12345
Run Code Online (Sandbox Code Playgroud)

或者在客户端存储已查看项目的列表肯定符合条件。