我还处于Laravel的初级阶段-所以重构是我需要解决的问题。
因此,我有2种方法可以引入API's
,一种方法可以显示即将到来的足球比赛,另一种可以带来结果。两者在$ fixtures和$ results变量下共享相同的auth
数据。 $url
除了fixtures和results关键字部分外几乎相同。
我不确定如何重构它。我是否需要使用重复的数据创建一个额外的函数,然后在其他2种方法中调用它?我不是100%知道该怎么写!
protected function getFixtures()
{
$url = 'https://sportdata.p.mashape.com/api/v1/free/soccer/matches/fixtures/premier-league';
$fixtures = Zttp::withHeaders([
"X-Mashape-Key" => "WxLtGy9Mx6msheZOC3IISAGlqUcDp1qkbudjsnpL91tbHWQTPF",
"Accept" => "application/json"
])->get($url, []);
return $fixtures->json();
}
protected function getResults()
{
$url = 'https://sportdata.p.mashape.com/api/v1/free/soccer/matches/results/premier-league';
$results = Zttp::withHeaders([
"X-Mashape-Key" => "WxLtGy9Mx6msheZOC3IISAGlqUcDp1qkbudjsnpL91tbHWQTPF",
"Accept" => "application/json"
])->get($url, []);
return $results->json();
}
答案 0 :(得分:2)
您可以将与第三方服务的所有通信移至单独的功能,如下所示:
protected function getFixtures() {
return $this->getData('fixtures');
}
protected function getResults() {
return $this->getData('results');
}
protected function getData($action) {
$url = 'https://sportdata.p.mashape.com/api/v1/free/soccer/matches/'.$action.'/premier-league';
$results = Zttp::withHeaders([
"X-Mashape-Key" => "WxLtGy9Mx6msheZOC3IISAGlqUcDp1qkbudjsnpL91tbHWQTPF",
"Accept" => "application/json"
])->get($url, []);
return $results->json();
}