-1

我们正在开发一个 JSON API 来向少数客户端(即 iOS 和 Android 应用程序)提供数据。

现在,不断出现的问题是:我们从什么角度构建 JSON?

1)“以客户为中心”:

JSON 键以应用程序中匹配的 UI 元素命名。例如:

{
    "label" : "This is a headline of a news article",
    "textField" : "This is the text of a news article",
}

临:

无需发布应用程序的新版本即可更改应用程序的内容。如果你想改变 UI 标签的内容,它看起来像这样:

{
    "label" : "This is a short abstract of a news article"
}

此外,应该可以在客户端只有一个数据模型与一个视图相关。

反对:

在服务器端产生混乱,因为必须有从数据对象名称到 UI 元素名称的转换


2)“以数据为中心”

JSON 键以传递数据的数据实体命名

{
    "articleHeadline" : "This is a headline of a news article",
    "articleText" : "This is the text of a news article"
}

临:

JSON API 说明了它的作用。密钥名称揭示了密钥的内容。

反对:

在客户端产生混乱,因为必须有从数据对象名称到 UI 元素名称的转换

内容的更改也会更改 JSON 键的名称。

{
    "articleAbstract" : "This is a short abstract of a news article"
} 

这还需要对所有使用 API 的应用程序进行代码更改和部署。


您更喜欢这两种方法中的哪一种,为什么?

4

1 回答 1

2
  1. 你的 API 不应该知道你的应用是如何实现的。它应该提供服务,但不知道用它做了什么。

  2. 您应该为字段提供描述性名称。

  3. 应将应用程序中的字段更改为描述性名称,例如“articleHeadline”和“articleBody”。

更新 有两个级别可以查看

大局- API 设计、依赖控制、架构

Robert C. Martin(又名 Uncle Bob)的这篇文章是一个很好的起点。它概述了由糟糕的软件设计引起的许多问题困难,并概述了所谓的良好(可靠)软件设计的SOLID原则。我强烈建议阅读、重新阅读并尝试完全理解它。

详细信息- 方法名称、变量名称、格式、注释

这本书也由 Robert C. Martin 撰写,讨论了编写好代码的许多细节。它还描述了所谓的“代码气味”或启发式方法,表明可能存在更好的解决方案。

于 2015-08-21T14:37:55.210 回答