我从2个API获得了一些产品信息(考虑添加第三个) . 我的应用程序有模块,其中包含接口(将在主应用程序中实现),如下所示:
interface ProductInterface
{
public function getId();
public function getSku();
/** @return GalleryImageInterface[] */
public function getImages();
...
}
interface GalleryImageInterface
{
public function getId();
public function getUrl();
...
}
目标是以正确的方式处理API数据,以创建实现这些接口的产品列表 . 我找到的最简单的方法是在我的前端控制器中获取API的json数据,将json_decode()传递给数组,然后将这些数组映射到模块的模型,逐个字段地显示关系 . 但是,如果我想从API添加一些额外的字段或添加另一个API作为源,它似乎没有什么害处 .
我将非常感谢从经验丰富的Yii2开发者那里获得一些技巧 .
1 回答
相反,接口,我将使用模型,从大规模任务中获得优势 . 然后,我将在静态方法中获取这些属性,因此当您要导入数据时,您有一个唯一的访问点 .
Product class
GalleryImage class
从api获取json数据时,可以这样导入:
将parseFromListArray放在共享模型中可能是一个很好的想法,因此您不必每次都为每个模型重写 .
此外,通过这种方式,您可以完全控制导入数据方法,并且应该在类中添加新成员以添加要导入的新属性 .