我有一个API允许玩家“探索”一个随机返回资源的区域。这样的动作会花费一些游戏币,因此玩家信息会因此而更新。因为客户端使用此API来“获取”某些资源,所以很自然地认为它应该是HTTP GET。但是,GET应该是幂等的,而事实并非如此。根据RFC 7231:
POST方法请求目标资源处理 根据资源自身包含在请求中的表示 特定的语义。
和
PUT方法请求目标资源的状态 用表示定义的状态创建或替换 包含在请求消息有效负载中。
这两个请求都用于处理封闭的有效负载这一事实使得它们在我的情况下不太合适。我该怎么用?
答案 0 :(得分:1)
实际上这种类型的动作并不适合REST。我会说它更像是一个RPC方法,因为你定义的是一个动作,而不是一个资源。 RPC方法通常是POST,所以在我看来这是要走的路。
答案 1 :(得分:0)
(a)不要再看RFC 2616了;在这种情况下,相关的是RFC 7231。
(b)如果没有更具体的方法适合你,POST就是你的朋友。