我将SF 3.4应用程序与Rest API连接起来。然后,我创建了一个DTO类和相应的类。
这是我的服务配置:
AppBundle\Api\AminoApi:
arguments:
- '@csa_guzzle.client.bioapi'
- '@jms_serializer'
这是我的DTO:
namespace AppBundle\Api\DTO;
class AminoDTO
{
/**
* @var string Id of the amino acid (auto-increment)
*/
private $id;
/**
* @var string Name of the amino
*/
private $name;
/**
* @var string Name in 1 letter (A, L, S ...)
*/
private $name1Letter;
/**
* @var string Name in 3 letters (Ser, Leu ...)
*/
private $name3Letters;
/**
* @var float
*/
private $weight1;
/**
* @var float
*/
private $weight2;
/**
* @var float
*/
private $residueMolWeight;
}
和班级:
namespace AppBundle\Api;
use AppBundle\Api\DTO\AminoDTO;
use GuzzleHttp\Client;
use JMS\Serializer\Serializer;
class AminoApi
{
/**
* @var Client
*/
private $bioapiClient;
/**
* @var Serializer
*/
private $serializer;
/**
* @var string|null
*/
private $apiKey;
/**
* Bioapi constructor.
* @param Client $bioapiClient
* @param Serializer $serializer
* @param string $apiKey
*/
public function __construct(Client $bioapiClient, Serializer $serializer, $apiKey = null)
{
$this->bioapiClient = $bioapiClient;
$this->serializer = $serializer;
$this->apiKey = $apiKey;
}
/**
* Retrives Aminos informations
* @return object
*/
public function getAminos()
{
$uri = '/aminos';
$response = $this->bioapiClient->get($uri);
return $this->serializer->deserialize($response->getBody()->getContents(), AminoDTO::class, 'json');
}
}
当我调用$aminoApi->getAminos()
时,我得到一个空类,我想要一个对象数组!
当我询问json响应时它可以工作,因此与API的连接正常!
我在做什么错了?
谢谢。