Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 转发对象';API响应中的公共属性/变量是一个好的实践吗?_Rest_Api Design - Fatal编程技术网

Rest 转发对象';API响应中的公共属性/变量是一个好的实践吗?

Rest 转发对象';API响应中的公共属性/变量是一个好的实践吗?,rest,api-design,Rest,Api Design,因此,我们的一个API的功能是接收有限的原始数据,对其进行充实,然后将其返回给请求者。当前,控制器显式构建响应对象。然而,由于我们不断增加响应中的属性/变量,控制器变得相当Phat(是的,Ph)。使代码更加枯燥的一种方法是自动转发来自各种对象实例的任何公共(即非私有或受保护)变量。要提供更多上下文: 此API不处理敏感数据(用户、订单、付款) API不是公共的(需要活动的注册用户) 返回的数据都是来自请求者的原始、非结构化数据的丰富数据 更具体地说:我所说的转发是指让控制器遍历所用对象的所有

因此,我们的一个API的功能是接收有限的原始数据,对其进行充实,然后将其返回给请求者。当前,控制器显式构建响应对象。然而,由于我们不断增加响应中的属性/变量,控制器变得相当Phat(是的,Ph)。使代码更加枯燥的一种方法是自动转发来自各种对象实例的任何公共(即非私有或受保护)变量。要提供更多上下文:

  • 此API不处理敏感数据(用户、订单、付款)
  • API不是公共的(需要活动的注册用户)
  • 返回的数据都是来自请求者的原始、非结构化数据的丰富数据
更具体地说:我所说的转发是指让控制器遍历所用对象的所有公共属性,并自动将它们包含在响应对象中

到目前为止,我能想到的唯一缺点是:

  • 开发人员由于忘记将属性/变量设置为私有或受保护而意外地公开了该属性/变量
  • 可能会暴露一些源代码蓝图的痕迹(但考虑到它们只会是公共变量/属性,而没有其他东西,这一点看起来相当偏执)

我猜我错过了更多。

在仔细考虑之后,我意识到最大的问题是将合同与内部实施相结合,这将不可避免地在以后的某个时候成为技术债务。节省的时间不足以证明这一点