CakePHP4——如何創(chuàng)建一個(gè)簡(jiǎn)單的概念驗(yàn)證REST API?

如何讓一個(gè)簡(jiǎn)單的proof-of-conceptREST API在CakePHP4中工作?

我在這里和這里遵循了CakePHP烹飪手冊(cè)中的指南

目前,我的routes.php文件包含以下內(nèi)容(刪除注釋):

<?php

use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;

return static function (RouteBuilder $routes) {        
    $routes->setRouteClass(DashedRoute::class);    
    $routes->scope('/', function (RouteBuilder $builder) {            
        $builder->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);            
        $builder->connect('/pages/*', 'Pages::display');            
        $builder->fallbacks();
    });
    $routes->scope('/', function (RouteBuilder $builder) {
        $builder->setExtensions(['json']);
        $builder->resources('LocateITAPI');
    });
};

我的控制器包含以下代碼:

<?php
// src/Controller/LocateITAPIController.php
namespace App\Controller;

use App\Controller\AppController;

class LocateITAPIController extends AppController
{
    public function initialize(): void
    {
        parent::initialize();
        $this->loadComponent('RequestHandler');
    }

    public function index()
    {        
        echo json_encode(utf8_encode("LocateITAPIController::index()"));
    }

    public function view($id)
    {        
        echo json_encode(utf8_encode("LocateITAPIController::view()"));
    }

    public function add()
    {        
        echo json_encode(utf8_encode("LocateITAPIController::add()"));
    }

    public function edit($id)
    {        
        echo json_encode(utf8_encode("LocateITAPIController::edit()"));
    }

    public function delete($id)
    {        
        echo json_encode(utf8_encode("LocateITAPIController::delete()"));
    }

}

我正在嘗試使用以下瀏覽器訪問(wèn)它:

http://localhost/app/locateitapi.json

我希望看到一個(gè)JSON響應(yīng),但我看到的是以下錯(cuò)誤:

? 最佳回答:

由于cakephp命名約定,您會(huì)收到該錯(cuò)誤消息。

Solution I:

使用類似以下url:http://localhost/app/locate-i-t-a-p-i.json

解決方案二:外接路由器:

//http://localhost/app/locateitapi.json
$builder->connect('/locateitapi', ['controller' => 'LocateITAPIController', 'action' => 'index']);
$builder->connect('/locateitapi/add', ['controller' => 'LocateITAPIController', 'action' => 'add']);

Solution III:

重命名控制器類,如下所示:

class LocateItApiController ...
// http://localhost/app/locate-it-api.json

class LocateitapiController ...
// http://localhost/app/locateitapi.json
主站蜘蛛池模板: 国产亚洲自拍一区| 亚洲线精品一区二区三区| 一区二区三区在线观看视频| 亚洲欧美日韩中文字幕一区二区三区 | 精品视频一区二区三区在线播放| 国产在线观看一区二区三区四区| 亚洲免费视频一区二区三区| 国产精品乱码一区二区三区| 亚洲av午夜福利精品一区人妖| 亚洲视频一区二区在线观看| 日本一区二区三区免费高清| 亚洲AⅤ无码一区二区三区在线| 久久久久一区二区三区| 无码人妻一区二区三区免费手机| 国产一区二区三区不卡在线观看 | 亚洲一区免费视频| 鲁丝丝国产一区二区| 日本一区午夜艳熟免费| 亚洲国产一区在线观看| 一区二区三区免费视频观看| 美女福利视频一区| 日韩免费无码一区二区视频| 国产精品一区二区av| 亚洲Av永久无码精品一区二区| 亚洲午夜精品第一区二区8050| 青青青国产精品一区二区| 国产人妖视频一区在线观看| 国产精品视频第一区二区三区| 无码av中文一区二区三区桃花岛| 中文字幕永久一区二区三区在线观看| 91在线精品亚洲一区二区| 一区二区三区四区视频在线| 成人免费观看一区二区| 国产乱码伦精品一区二区三区麻豆| 亚洲宅男精品一区在线观看| 国产一区二区高清在线播放 | 日本一区二区在线| 一区二区在线播放视频| 亚洲欧美日韩一区二区三区在线| 中文字幕乱码一区二区免费| 男人的天堂亚洲一区二区三区|