ahmedebead / cake-rest-api
CakePHP 4.x 的 Rest API 插件
0.1
2021-07-08 05:58 UTC
Requires
- php: >=7.2.0
- cakephp/cakephp: ^4.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ^3.0
- phpunit/phpunit: ^8.5 || ^9.3
This package is auto-updated.
Last update: 2024-09-13 16:00:54 UTC
README
此插件简化了 CakePHP 4.x 应用程序的 CakeRestApi API 开发。它简单地将控制器输出的内容转换为 JSON 响应。
安装
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
安装 composer 包的推荐方法是
composer require ahmedebead/cake-rest-api "^0.1"
安装后,加载插件
将此文件添加到 /src/Application.php
// src/Application.php public function bootstrap(): void { $this->addPlugin('CakeRestApi', ['bootstrap' => true]); // Other code }
或者,您可以使用 shell 命令加载插件
$ bin/cake plugin load CakeRestApi
使用方法
您不需要对 CakePHP 应用程序中的代码进行重大更改。只需在路由配置中添加一个参数 isRest
即可,例如:
$routes->connect('/foo/bar', ['controller' => 'Foo', 'action' => 'bar', 'isRest' => true]);
并将您的控制器扩展到 RestController
,一切将由插件自动处理。例如:
<?php namespace App\Controller; use CakeRestApi\Controller\RestController; /** * Foo Controller * */ class FooController extends CakeRestApiController { /** * bar method * * @return Response|void */ public function bar() { $bar = [ 'falanu' => [ 'dhikanu', 'tamburo' ] ]; $this->set(compact('bar')); } }
就是这样。您将看到以下响应。
{ "status": "OK", "result": { "bar": { "falanu": [ "dhikanu", "tamburo" ] } } }
不是很简单吗?无论您使用 set()
方法在控制器动作中设置什么 viewVars
,它都将被转换为 JSON 响应。
响应格式
此插件以以下格式返回响应。
{ "status": "OK", "result": { ... } }
根据您的响应代码,status
键可能包含 OK 或 NOK。对于所有成功响应,代码将是 200,此键的值将是 OK。
如果发生错误或异常,status
的值将变为 NOK。此外,根据您的应用程序的 debug
设置,它将包含异常和跟踪数据。
result
键包含实际响应。它包含从您的控制器设置的变量。如果发生错误/异常,此键将不可用。
这些属性也适用于您的控制器中的 beforeFilter
方法,因此您可以在那里添加额外的身份验证逻辑。
报告问题
如果您对此插件有任何问题或发现任何错误,请在 GitHub 上提交问题。