在 ZF 上创建的网站的简单 REST API 实现
A simple REST API implementation for a website created on ZF
我有一个存储库存的网站,我需要做一个 REST API,因为我必须放置 Web 组件并将数据传递给它。通信将由 JWT 保护。我找到了一个非常简单的解决方案 zf3-rest-api 但我无法实现它,因为我有一些奇怪的文件结构(我没有 modules.config.php
等)恐怕它不是 ZF3 甚至 ZF2。我可以编写自定义解决方案,但我不知道应该将代码放在哪里(抱歉,我是前端开发人员)?在模块中?以及如何处理路由?这样我就可以通过 http://example.com/api/
?
引用它
这是一个 ZF1 应用程序树,ZF1 有它的 REST 实现。
您可以获得 here 扩展 Zend_Rest_Controller 的控制器示例。假设您将其命名为“MyRestfulController”。
然后你必须注册你的休息路线,你可以在你的 Bootstrap.php
protected function _initRestRoute()
{
$frontController = $this->bootstrap('frontController')->getResource("frontController");
$restRouteUL = new Zend_Rest_Route($frontController, array(), [
'default' => [
'my-restful'
]
]);
$frontController->getRouter()->addRoute('rest', $restRouteUL);
}
或
如果你不需要休息而只是 API 那个 return 一些 JSON 你可以跳过 Restful 部分并在你的控制器中禁用布局(所以不要扩展 Zend_Rest_Controller ),覆盖“init()”方法
public function init()
{
parent::init();
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$this->getResponse()->setHeader("Content-type", "text/json");
/**
* This is important for the helper not to exit the dispatch loop
*/
$this->_helper->json->suppressExit = true;
}
那么在你的行动中
public function getMyDataAction()
{
$data = [];
// your filters and all the logic to populate $data
$this->_helper->json($data);
}
请记住,ZF1 有几个性能问题,主要与应尽可能由 serviceManager 以及 Zend_Date.
替换的资源配置有关
我有一个存储库存的网站,我需要做一个 REST API,因为我必须放置 Web 组件并将数据传递给它。通信将由 JWT 保护。我找到了一个非常简单的解决方案 zf3-rest-api 但我无法实现它,因为我有一些奇怪的文件结构(我没有 modules.config.php
等)恐怕它不是 ZF3 甚至 ZF2。我可以编写自定义解决方案,但我不知道应该将代码放在哪里(抱歉,我是前端开发人员)?在模块中?以及如何处理路由?这样我就可以通过 http://example.com/api/
?
这是一个 ZF1 应用程序树,ZF1 有它的 REST 实现。
您可以获得 here 扩展 Zend_Rest_Controller 的控制器示例。假设您将其命名为“MyRestfulController”。
然后你必须注册你的休息路线,你可以在你的 Bootstrap.php
protected function _initRestRoute()
{
$frontController = $this->bootstrap('frontController')->getResource("frontController");
$restRouteUL = new Zend_Rest_Route($frontController, array(), [
'default' => [
'my-restful'
]
]);
$frontController->getRouter()->addRoute('rest', $restRouteUL);
}
或
如果你不需要休息而只是 API 那个 return 一些 JSON 你可以跳过 Restful 部分并在你的控制器中禁用布局(所以不要扩展 Zend_Rest_Controller ),覆盖“init()”方法
public function init()
{
parent::init();
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$this->getResponse()->setHeader("Content-type", "text/json");
/**
* This is important for the helper not to exit the dispatch loop
*/
$this->_helper->json->suppressExit = true;
}
那么在你的行动中
public function getMyDataAction()
{
$data = [];
// your filters and all the logic to populate $data
$this->_helper->json($data);
}
请记住,ZF1 有几个性能问题,主要与应尽可能由 serviceManager 以及 Zend_Date.
替换的资源配置有关