繁体   English   中英

REST API设计,使用哪种模式

[英]REST API design, which pattern to use

我需要针对移动应用程序的更快的REST API。 我为API设计了两种类型的响应。 哪种方法更好? **

  • 选项1

**

{    
  data :[ 
          {name:"abc",email:"abc@abc.abc",id:12,age:24},
          {name:"abc",email:"abc@abc.abc",id:13,age:24}
        ]
}

**

  • 选项2

**

{
     fields:['name','email','id','age'],
     values:[
                ['abc','abc@abc.abc',12,45],
                ['abc','abc@abc.abc',12,45]
            ]
}

显然,第二个键产生的响应长度更短(考虑到单个响应中有1000条记录的情况)和更快的输出,因为不重复键。

有人可以建议最好的做法吗?

选项1是大多数API的通用标准 由于大多数库(GSON,Jackson等)在设计时都考虑了#1的问题,因此它使解析和映射JSON响应到模型类的映射变得更加容易。 我强烈建议您选择#1。 ;)

此外,如果您在路上引入嵌套对象,则#2会使事情变得复杂。

您可以在此处阅读有关JSON规范的更多信息。

我喜欢第一个。 为什么? 因为在软件开发中有一个不变的事实,那就是CHANGE 如果系统不更改,它将很快消失,因此,为将来的更改做准备,您应该使用#1。 您可以添加字段,也可以删除字段,并告诉客户端例如在使用前检查字段是否存在。 您还可以使自己与字段排序分离。 您还可以使将来的开发人员更轻松地使用您的系统。 这就是每个系统都使用#1的原因,为了减小大小,您可以使用Gzip。

祝好运。

由于选项1的可读性和可维护性,因此应由开发人员选择。 我同意关于嵌套对象的观点。 为了提高速度,JSON一直支持不同的语言,并且可以压缩以使文件更小,因为它是由文本组成的,并且尽可能使用gzip进行90%的压缩。

确实是一个。 使用对象表示法,因为它应该被使用。 比2更具可读性,更易于扩展,解析和操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM