Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/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
使用来自第三方api调用的响应对象_Api_Web Applications - Fatal编程技术网

使用来自第三方api调用的响应对象

使用来自第三方api调用的响应对象,api,web-applications,Api,Web Applications,在创建web应用程序时,如果我们使用第三方api调用(它们本身提供响应对象),那么直接在视图/模型中使用这些响应对象是一个好主意吗?或者我们是否需要创建一个模型对象来复制这些响应对象中的数据,以便它们与第三方对象解耦?即使除了响应对象中已经存在的数据之外,没有其他数据属性可添加,是否始终需要这种解耦?这些响应对象似乎没有setter方法,只有read方法?这些信息是否会以任何方式改变设计决策? 这里的好做法是什么 在构建模型对象时,我不会依赖外部响应对象。如果模型对象需要响应中的属性,我将传递这

在创建web应用程序时,如果我们使用第三方api调用(它们本身提供响应对象),那么直接在视图/模型中使用这些响应对象是一个好主意吗?或者我们是否需要创建一个模型对象来复制这些响应对象中的数据,以便它们与第三方对象解耦?即使除了响应对象中已经存在的数据之外,没有其他数据属性可添加,是否始终需要这种解耦?这些响应对象似乎没有setter方法,只有read方法?这些信息是否会以任何方式改变设计决策?
这里的好做法是什么

在构建模型对象时,我不会依赖外部响应对象。如果模型对象需要响应中的属性,我将传递这些属性。这有助于在测试期间模拟模型对象,而无需太多麻烦

对于视图对象,我认为在渲染期间依赖响应对象从中提取属性是很好的


我的两分钱

谢谢你的回答。我只是想知道,如果response对象有很多自定义对象,那么正确的做法是在模型中重新创建这些自定义对象的副本版本吗?如果你能分享你对此的想法,这将非常有帮助。当然不是因为模型似乎严重依赖于响应对象层次结构。你能从你的领域提供一个关于这种依赖性的具体例子吗?我不能分享任何代码,因为它违反了我们公司的政策。不过,我会尝试详细说明。响应对象有一些自定义对象,这些自定义对象在equals、hashcode等方面定义得很好。当我使用响应对象构建模型时,这些对象与我认为适合作为模型属性的对象类型相同。我的难题是,是直接使用response对象并从response对象自定义对象中提取必要的细节,还是创建我自己的自定义对象,这将在某种程度上反映响应自定义对象,除了它将是解耦的,我还想添加,可能有另一种方法获得相同的模型对象,使用不同的内部服务。因此,我确实希望有一个公共对象,它可以使用来自第三方api或内部服务的对象填充,这取决于该用例中需要什么。因此,虽然我觉得通过编写自己的对象来实现解耦是一件好事,但在我的包中复制这些相同的对象确实让我感到不舒服。我觉得我违反了干的原则。感谢您花时间进行响应。我同意您的第二点,即如果响应对象层次结构足够长/足够大,那么镜像整个层次结构并编写方法在两者之间复制数据是没有意义的。在这种情况下,模型依赖于这些响应对象是有意义的。