Oop 将多个外部API组合在一个
所以我又有一个问题 我需要访问几个API SOAP,REST是我为其创建或下载的软件包。每个API都会以自己的方式返回我需要的数据,因此我想为每个API创建一个类,使用相同的方法来准确地输出我需要的数据。所以我认为创建一个接口是正确的,因为每个类都应该有相同的方法 现在的问题是: 让我们假设在接口中有一个名为getAllMovies的方法。现在我想调用这个方法,比如getAllMovies$APItoUse或getAllMovies。如果没有param,我想从所有可播放的API获取电影 最好的方法是什么?我是否应该创建一个类,该类知道我使用的所有API,然后在我需要的每个API中调用该方法,将输出合并在一起并返回它 我认为有几种方法可以做到这一点,但我提出这个问题是因为我想让它成为正确的方式Oop 将多个外部API组合在一个,oop,design-patterns,laravel,Oop,Design Patterns,Laravel,所以我又有一个问题 我需要访问几个API SOAP,REST是我为其创建或下载的软件包。每个API都会以自己的方式返回我需要的数据,因此我想为每个API创建一个类,使用相同的方法来准确地输出我需要的数据。所以我认为创建一个接口是正确的,因为每个类都应该有相同的方法 现在的问题是: 让我们假设在接口中有一个名为getAllMovies的方法。现在我想调用这个方法,比如getAllMovies$APItoUse或getAllMovies。如果没有param,我想从所有可播放的API获取电影 最好的方
提前谢谢你 您可以使用api的名称构建一个数组并对其进行迭代。一旦进入bucle,您就可以执行一个case语句,并根据您所处的api,执行一个类或另一个类的对象实例。然后只需调用所需的方法
$apis = array('api1','api2',...);
$allMovies = array();
foreach($apis as $api){
switch($api){
case 'api1': $obj = new API1Class; break;
case 'api2': $obj = new API2Class; break;
...
}
array_push($allMovies,$obj->getAllMovies());
}
谢谢你的回复。我就是这样想的。因为每个API都有更多的方法,如果我从上面的示例中创建一个类,为每个API方法创建一个方法,然后决定使用哪个API,我会做得最好,对吗?我认为可能有更好的模式,但看起来我是对的: