Php 如何将$data发送到fetchOne apigility rest?
如何将Php 如何将$data发送到fetchOne apigility rest?,php,rest,zend-framework2,laminas-api-tools,Php,Rest,Zend Framework2,Laminas Api Tools,如何将$data(some one values->array)发送到Rest Apigility进行查询并返回结果这是我发送$data的代码 $body = $this->getRequest()->getContent(); $json = json_decode($body, true); $conditions =array( 'artist' => $json['data'] ); $client = n
$data
(some one values->array)发送到Rest Apigility进行查询并返回结果这是我发送$data
的代码
$body = $this->getRequest()->getContent();
$json = json_decode($body, true);
$conditions =array(
'artist' => $json['data']
);
$client = new Client();
$uri = "http://localhost:81/ApigilityNew/public/albums";
$user = 'admin';
$password = 'admin';
//url del servicio REST
$client->setUri($uri);
//establecer metodo GET-POST
$client->setMethod('GET');
//tiempo de peticion
$client->setOptions(
[
'maxredirects' => 0,
'timeout' => 60
]
);
$client->setHeaders(['Accept' => 'application/json', 'Contet-Type' => 'application/json']);
$client->setAuth($user, $password , $client::AUTH_BASIC);
$client->setParameterGet($conditions);
$response = $client->send($client->getRequest());
对于获取Apigility上的$data
,此:
AlbumResource.php
/**
* Fetch a resource
*
* @param array $condiciones
* @return ApiProblem|mixed
*/
public function fetch($conditions) //$id
{
//return new ApiProblem(405, 'The GET method has not been defined for individual resources');
return $this->mapper->fetchOne($condiciones);
}
public function fetchOne($conditions)
{
$sql = ' SELECT album.id, album.artist, album.title, pais.nombre_pais, biografia.genero, biografia.ocupacion, biografia.sitio_web
FROM album
LEFT JOIN pais ON pais.id_album = album.id
LEFT JOIN biografia ON biografia.id_album = album.id
WHERE 1 = 1 ';
if (!empty($conditions['criterio_busqueda']))
{
$sql = $sql. " AND album.artist LIKE '%".$condiciones['criterio_busqueda']."%'";
}
$resultset = $this->adapter->query($sql, array($data));
$data = $resultset->toArray();
if (!$data) {
return false;
}
return $data;
}//end function
AlbumMapper.php
/**
* Fetch a resource
*
* @param array $condiciones
* @return ApiProblem|mixed
*/
public function fetch($conditions) //$id
{
//return new ApiProblem(405, 'The GET method has not been defined for individual resources');
return $this->mapper->fetchOne($condiciones);
}
public function fetchOne($conditions)
{
$sql = ' SELECT album.id, album.artist, album.title, pais.nombre_pais, biografia.genero, biografia.ocupacion, biografia.sitio_web
FROM album
LEFT JOIN pais ON pais.id_album = album.id
LEFT JOIN biografia ON biografia.id_album = album.id
WHERE 1 = 1 ';
if (!empty($conditions['criterio_busqueda']))
{
$sql = $sql. " AND album.artist LIKE '%".$condiciones['criterio_busqueda']."%'";
}
$resultset = $this->adapter->query($sql, array($data));
$data = $resultset->toArray();
if (!$data) {
return false;
}
return $data;
}//end function
怎样才能得到结果?现在它只从Apigility返回不支持的媒体类型您的
ContentType
标题中有一个输入错误:
'Contet-Type' => 'application/json'
应该是:
'Content-Type' => 'application/json'
这可能就是为什么您会收到一条不受支持的媒体类型消息我将此用作指南,但不起作用[link]@DiegoA。该应用程序应该可以正常工作。你能更具体地说明问题是什么吗。你收到错误信息了吗?什么信息?你什么时候在哪里买的?请添加准确消息的报价。。。