我有2个API,一个公司API和一个新闻API。我想提取与公司相关的新闻,那么实现这一目标的最佳做法是什么?
在这种情况下,客户必须向两个API发出请求以获取公司的新闻列表。
在这种情况下,只有1个请求来自客户端,并且在1响应中返回所需的所有内容
答案 0 :(得分:0)
好吧,如果你想用数据库做这件事而你正在使用Doctrine:你会做什么?
完全!为该问题构建实体:
class Company {
/*
* @ORM\OneToMany(...)
*/
private $news;
}
现在,如果你想让公司获得id 1及其新闻,你可以这样做:
$company = $entityManager->find('Company', 1);
$news = $company->getNews();
问题在于,Doctrine无法与REST API一起使用。但是,Doctrine的驱动程序正在使用REST API。这应该可以解决问题:
https://github.com/CircleOfNice/DoctrineRestDriver
/*
* @DataSource\Select("http://yourapi.com/company/{id}")
*/
class Company {}
/*
* @DataSource\Select("http://yourapi2.com/news/{id}")
*/
class News {}