最佳实践:针对少量客户的以数据为中心或以客户端为中心的JSON API?

时间:2015-08-21 13:13:24

标签: android ios json data-structures json-api

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

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

1)'以客户为中心':

JSONs键以应用程序中匹配的UI元素命名。 e.g:

{
    "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​​的所有应用程序进行代码更改和部署。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

  4. <强>更新 您可以查看两个级别

    大图 - API设计,依赖控制,架构

    Robert C. Martin(a.k.a叔叔鲍勃)的文章是一个很好的起点。{p> This它概述了软件设计不良所带来的许多问题,并概述了良好(可靠)软件设计的SOLID原则。我强烈建议阅读,重新阅读,并试图完全理解它。

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

    罗伯特·C·马丁(Robert C. Martin)也谈到了写好代码的许多细节。

    This Book。它还描述了所谓的“代码气味”或启发式方法,表明可能是更好的解决方案。