Для этого нужно использовать не REST, а RPC сервис.
Если делать через HAL, то вот так:
Api\src\V1\Rpc\Version\VersionController.phpnamespace Api\V1\Rpc\Version;
use Zend\Mvc\Controller\AbstractActionController;
use ZF\ContentNegotiation\ViewModel;
class VersionController extends AbstractActionController
{
public function versionAction()
{
$hal = $this->getPluginManager()->get('hal');
$o = $hal->createEntityFromMetadata(
new Entity(),
$hal->getMetadataMap()->get('Api\\V1\\Rpc\\Version\\Entity')
);
return new ViewModel(array(
'payload' => $o
));
}
}
Api\src\V1\Rpc\Version\Entity.phpnamespace Api\V1\Rpc\Version;
class Entity
{
public $version = 1;
}
И в конфиге модуля
'zf-hal' => array(
'metadata_map' => array(
'Api\\V1\\Rpc\\Version\\Entity' => array(
'route_name' => 'api.rpc.version',
'entity_identifier_name' => 'version',
'route_identifier_name' => 'version_id',
'hydrator' => 'Zend\\Stdlib\\Hydrator\\ObjectProperty',
),
Если же HAL не нужен и достаточно простого ответа:
Api\src\V1\Rpc\Version\VersionController.phpnamespace Api\V1\Rpc\Version;
use Zend\Mvc\Controller\AbstractActionController;
class VersionController extends AbstractActionController
{
public function versionAction()
{
return ['version'=>1];
}
}
Entity и код в конфиге не нужен.
Но если вдруг очень хочется использовать REST, то тоже есть способ.
Api\src\V1\Rest\Version\VersionController.phpnamespace Api\V1\Rest\Version;
use ZF\Rest;
class VersionController extends Rest\RestController {
protected function getIdentifier($routeMatch, $request)
{
return 'version';
}
}
Api\src\V1\Rest\Version\Entity.phpnamespace Api\V1\Rest\Version;
class Entity
{
public $version = 1;
}
Api\src\V1\Rest\Version\VersionResource.phpnamespace Api\V1\Rest\Version;
use ZF\Rest\AbstractResourceListener;
class VersionResource extends AbstractResourceListener
{
public function fetch($id)
{
return new Entity();
}
}