我正在构建一个REST API endpint,它将公司添加到
MySQL数据库中.客户端发送带有附加数据包的POST请求.数据包是JSON对象.假设JSON公司对象的格式与API使用的公司类完全匹配.
如何将JSON公司对象数据导入公司类?实例化公司对象,json_decode()JSON对象,然后调用几十个set()方法似乎很愚蠢.
这似乎特别愚蠢,因为我计划在我的客户端包中提供相同的模型来构建在解码之前作为JSON传递给我的API的对象,并再次映射回相同的对象.
我错过了什么吗?在构建我的API时,我经常遇到似乎多余的事情,但也许这就是必须发生的事情.
解决方法
为什么不处理Company对象的构造函数中的所有内容,以便将JSON对象作为参数传递,构造函数处理所有赋值.这样你甚至不需要公共设置方法.
$companyData = $_POST['company']; //or $companyData = json_decode($_POST['company']); //or whatever depending on how you are posting class Company { private $companyName; //etc... function __construct(array $data) { foreach($data as $key => $val) { if(property_exists(__CLASS__,$key)) { $this->$key = $val; } } } }