我应该使用什么方法来开发一个API,它接收两个移动并返回一个结果(输赢/平局)?
星条旗游戏
示例:
以字母L开头的动物
玩家1-移动:狮子玩家2-移动:里昂
thegame.com/api/v1/game/1/player/1/move/1
thegame.com/api/v1/game/1/player/2/move/1
谢谢。
发布于 2017-04-20 18:01:03
复数更常见一些,如:
thegame.com/api/v1/games/1/players/1/moves/1
我认为更符合逻辑的是,动作直接处于游戏的下方,独立于玩家:
thegame.com/api/v1/games/1/moves/1
每个移动都有一个相关联的玩家做出了移动。这将使它很容易重新运行所有的移动和了解游戏的历史。
对于玩家来说,他们的规范URL将独立于游戏
thegame.com/api/v1/players/1
如果你愿意的话,你仍然可以有一种方法来访问玩家的所有游戏和游戏的所有玩家。
thegame.com/api/v1/players/1/games
thegame.com/api/v1/games/1/players
假设这是一个2(或更多)人之间的游戏,您可能会让每个客户端每隔几秒钟对该游戏进行一次投票。例如,如果一个客户已经做出了最新的举动,它就会开始轮询thegame.com/api/v1/games/1?moves_since=123456
URL。这将返回自时间戳123456以来的所有移动的列表。时间戳可能是该用户最后一次移动的时间。一旦它返回一个有效的移动,客户端将显示给用户,并等待他们自己移动。如果有几个玩家,“游戏”资源可能包括一个像"nextMover“这样的字段,以指示下一步要移动的玩家。
一种更现代的方法是使用类似Websockets的东西,这样,当发生更改时,客户端就会立即从服务器上得到推送。这基本上是一个类似的设计,但服务器立即通知所有客户端更新,而不是客户端轮询。
https://stackoverflow.com/questions/43529438
复制相似问题