【发布时间】:2021-04-02 20:15:36
【问题描述】:
我正在尝试设置一个简单的 REST GET API,该 API 将使用 CakePHP4 提供我的“层次结构”表中的所有数据,遵循 https://book.cakephp.org/4/en/development/rest.html
这是我的 /config/routes.php 文件
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
$builder->connect('/', ['controller' => 'Accueil', 'action' => 'index', 'index']);
$builder->connect('/pages/*', 'Pages::display');
$builder->fallbacks();
});
$routes->scope('/api', function (RouteBuilder $routes) {
$routes->setExtensions(['xml', 'json']);
$routes->resources('Hierarchies');
});
这是我的 Controller/HierarchiesController.php
class HierarchiesController extends AppController
{
public function initialize(): void
{
parent::initialize();
$this->loadComponent('RequestHandler');
}
public function index(){
$recipes = $this->Hierarchies->find('all');
$this->set([
'recipes' => $recipes,
'_serialize' => ['recipes']
]);
}
}
- routes.php 上的顺序是否有意义?没事吧?
- Template/Hierarchies/index.php 中是否需要某些内容?
- 测试端点的 url 是什么?
谢谢
【问题讨论】:
-
您希望您的 CakePHP 应用程序作为 API 和普通 Web 应用程序工作,还是仅作为 API 工作?仅当您需要两者时,才需要 /api 路由。但是,您所有相关的控制器等都应该在他们尊重的命名空间中。
-
@rrd :我希望 CakePHP 应用程序仅作为“层次结构”表的 API 工作。
-
所以你必须在 /api/Controller/ 创建它的控制器,请看这里:book.cakephp.org/4/en/development/routing.html#prefix-routing
标签: php cakephp-4.x