在 RESTful url 中表示向量的好方法是什么?



对于我正在构建的游戏,我想将代币放在棋盘上的某个位置。板上的位置由 2D 向量表示,但现在我对在 url 中表示这些向量的微不足道的问题挠头。

我能想到几个方案,没有一个特别令人满意:

  1. /point/{x}/{y} 前任。 /point/10/3
  2. /point/{y}/{x} 前任 /point/3/10
  3. /point/({x},{y}) 前任 /point/(10,3)

前两个的问题在于,向量的哪一部分先出现是相当随意的。第三个似乎有风险;我可以想象调试起来会很有趣,因为某些用户代理可能会对"(",")"或","字符进行编码,尽管我希望我的服务器端框架能够容忍这一点。

你试过类似的东西吗?我是否错过了一个明显优越的选择?

你给出的三个例子没有什么不休息的:

  1. /point/{x}/{y} 例如。 /point/10/3
  2. /point/{y}/{x} 前任 /point/3/10
  3. /point/({x},{y})/point/(10,3)

但是,我不会尝试用自己的 URI 来表示板上的每个方块。客户是想单独获得任何正方形,还是只想获得整个董事会?例如,如果这是跳棋,则需要往返服务器 64 次才能获得每个棋盘方块的状态。效率很低!对整个电路板使用单个 URI 意味着每个方块的状态必须是一个属性:

PATCH /board
{ "x": "10", "y": "3", "token": "black", .. [other params] .. }

PATCH /board
{ "10,3": "black", .. [other params] .. }

别忘了,如果你不能PATCH板,你总是可以POST

您必须在 API 文档中定义哪个先出现(xy)。请不要将y定义为第一个:-)

相关内容

最新更新