API 设计的时候应该深度优先还是广度优先?

2017-12-31 15:37:14 +08:00
 deepkolos

深度优先

    // swipe   相对于 start 的 touchmove
    swipe: {
      x:          Number, // x 分量
      y:          Number, // y 分量
      distance:   Number, // 向量的模
      startWith:  String, // 开始时的方向
      endWith:    String, // 结束时的方向
      direction:  String, // 感觉的确不应该使用 string 来作为状态的标识
    },

广度优先

    // swipe   相对于 start 的 touchmove
    swipeX:          Number, // x 分量
    swipeY:          Number, // y 分量
    swipeDistance:   Number, // 向量的模
    swipeStartWith:  String, // 开始时的方向
    swipeEndWith:    String, // 结束时的方向
    swipeDirection:  String, // 感觉的确不应该使用 string 来作为状态的标识

乱用了广度,深度优先的词, 但是感觉有点小相似 (逃

API 设计一般会怎么选择, 我见到大多第二种, 那么时候时候应该使用第一种, 什么时候该使用第二种?

2411 次点击
所在节点    程序员
6 条回复
4ever911
2017-12-31 15:45:58 +08:00
whatever doesn't really matter
TuringGunner
2017-12-31 16:22:56 +08:00
我一般习惯写成第一种,因为返回的结果中还会有别的字段,全部混在一起太乱了

除非是查单一 swipe 的 api 才会使用第二种
wintersun
2017-12-31 16:30:38 +08:00
难道不应该是 OO 的理念?
JSON 格式只是前后台之间的数据传输格式,前端和后台如果都是 OO 编程,那么自然就要采用你所谓的“深度优先”更自然更方便转换!
romennts
2017-12-31 21:06:24 +08:00
我觉得很快流行 GraphQL 了~都无所谓,SQL 完事
winglight2016
2018-01-01 11:54:08 +08:00
@romennts 大前年( 2015 )刚接触 GraphQL 的时候我就觉得这会是下一代的接口标准,现在嘛~~~
iyangyuan
2018-01-01 12:03:24 +08:00
果断第一种

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/419008

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX