我想创建一个简单的纸牌游戏并将所有游戏逻辑服务器放在一边。然后,客户端应用程序将通过REST API与后端进行交互。
我有一部分想到了它,但是我正在努力解决如何使用这种API实现动态操作。
例如,我有这样的行动:
特别是,我如何处理开始或暂停游戏?我可以这样做:
POST /games/123/start
POST /games/123/pause
但这不是非常RESTful,因为URL的最后一部分将是动词而不是名词。此外,实际上没有数据发布。
我将如何实施这种动态行动?有什么建议吗?
答案 0 :(得分:0)
RESTful API - 其中动词由HTTP方法完整描述,资源由URL完整描述 - 当主要操作是CRUD时最有效,或者思考SQL(插入,选择,更新,删除)。因此,请考虑如何以类似CRUD的方式描述每个操作:
POST /games
PUT /games/paused/123
DELETE /games/123
DELETE /games/active/123
最后,您可以根据自己的需要设计API。大多数真实世界的“RESTful”API都不是100%RESTful。在某些时候,设计纯度必须屈服于实用主义。
我的建议:保持GET
s,PUT
s,DELETE
等等(不是POST
的所有内容)幂等。 POST
应该是唯一的非幂等HTTP方法。
答案 1 :(得分:0)
在我看来,我会推荐一条路线,如:
PUT /games/213
内容:
{game: {paused: false}}
如果游戏没有进行,那么它会暂停。我不知道你的模型是什么样的,但我想所有游戏都会在暂停状态下创建,然后我可以运行上面的请求来启动它。
此外,PUT
可以是POST
。
那只是我的两分钱。