ahmedebead/cake-rest-api

CakePHP 4.x 的 Rest API 插件

安装: 4

依赖: 0

建议: 0

安全: 0

星星: 2

关注者: 1

分支: 0

类型:cakephp-plugin

0.1 2021-07-08 05:58 UTC

This package is auto-updated.

Last update: 2024-09-13 16:00:54 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

此插件简化了 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 上提交问题。