我正在制作一款游戏,您可以根据列表中的任务开始战斗。
一旦你完成一场战斗(输赢),战斗状态将不再可用,因为没有正在进行的战斗。
当您进行GET /战斗时,这将反映在API中。
我的问题如下:我应该使用哪些REST代码来表示目前无法使用该战斗。
其他:
答案 0 :(得分:1)
在使用唯一响应代码指示结果的约束下,我会选择HTTP 204(无内容)。我的理由是,您要做的是表明资源(您的战斗)是有效的,但目前没有可用的数据。
您还可以选择转到HTTP 200(确定)并返回指示当前状态的有效负载,无论是在战斗进行还是不进行战斗时。这就是我个人可能想要的,因为它有助于规范化呼叫者API的形状。而不是调用者必须记住返回代码周围的规则,他们在两个场景中都接收相同的数据结构并解释它以辨别上下文。这也可以让你在战斗完成后用历史数据(例如战斗统计数据)扩展API,而不会破坏对API的更改。
我正在考虑以下内容:正在进行中:
{
"Id" : 1234,
"InProgress" : true,
"Battle :
{
"SomeProp" : "SomeValue",
"OtherProp" : "OtherValue"
}
}
......对于没有进行中的事情,如下所示:
{
"Id" : 1234,
"InProgress" : false,
"Battle : null
}
我认为这两种方法都被认为是适当的RESTful响应。对我而言,选择是您希望提供的API合约的个人偏好。