mixerapi/rest

为 CakePHP 的 bake 控制台提供缺失的 RESTful API 组件。几秒钟内创建 RESTful API 框架。

维护者

详细信息

github.com/mixerapi/rest

源代码

问题

安装次数: 45,843

依赖项: 0

建议者: 0

安全性: 0

星星: 3

关注者: 2

分支: 2

类型:cakephp-plugin

v2.0.3 2022-06-04 14:50 UTC

README

Latest Version on Packagist Build Coverage Status MixerApi CakePHP Minimum PHP Version

此插件通过为您创建路由来快速启动 API 项目。

  • 通过单个命令构建 routes.php 文件或使用方便的 AutoRouter 自动暴露 RESTful CRUD 路由。
  • 为 CRUD 操作设置默认 HTTP 状态码

此插件假设您已经创建了模型和控制器。对于后者的帮助,请查看 MixerApi/Bake。检查官方的 RESTful 路由 文档,了解本插件未涵盖的高级路由场景。

更多内容请参阅 MixerAPI.com

安装

!!! info "" 如果已安装 MixerAPI,则可以跳过此步骤。

composer require mixerapi/rest
bin/cake plugin load MixerApi/Rest

或者,在 composer 安装后,您可以手动在您的应用程序中加载此插件。

# src/Application.php
public function bootstrap(): void
{
    // other logic...
    $this->addPlugin('MixerApi/Rest');
}

AutoRouter

创建路由已经相当容易,但 AutoRouter 可以轻松地构建 CRUD 路由。如果您刚开始使用 CakePHP 构建API,这将非常有用。

在您的 routes.php 中简单添加 \MixerApi\Rest\Lib\AutoRouter

# config/routes.php
$routes->scope('/', function (RouteBuilder $builder) {
    // ... other routes
    (new AutoRouter($builder))->buildResources();
    // ... other routes
});

这将添加 CRUD 控制器操作的路线(索引、添加、编辑、查看和删除)。如果您的控制器没有 CRUD 方法,则将跳过该路由。AutoRouting 也适用于插件

# in your plugins/{PluginName}/routes.php file
(new AutoRouter($builder, new ResourceScanner('MyPlugin\Controller')))->buildResources();

创建路由

尽管 AutoRouter 让生活变得容易,但它必须扫描您的控制器以构建 RESTful 资源,这会带来轻微的性能损失。不用担心,您可以使用 mixerapi:rest route create 为您编写路由。这将直接将路由写入您的 routes.php 文件。

# writes to `config/routes.php`
bin/cake mixerapi:rest route create

使用 --prefix 指定前缀

bin/cake mixerapi:rest route create --prefix /api

使用 --plugin 为插件

# writes to `plugins/MyPlugin/config/routes.php`
bin/cake mixerapi:rest route create --plugin MyPlugin

要执行干运行,请使用 --display 选项

bin/cake mixerapi:rest route create --display

有关非 CRUD 路由、子资源和高级路由的信息,请参阅 CakePHP 的 RESTful 路由 文档

列出路由

这与 bin/cake routes 类似,但仅显示 RESTful 路由,并改进了一些信息格式。

bin/cake mixerapi:rest route list

要限制输出到特定插件,请使用 --plugin 选项

# limit to a plugin:
bin/cake mixerapi:rest route list --plugin MyPlugin

#limit to main application:
bin/cake mixerapi:rest route list --plugin App

CRUD HTTP 状态码

默认状态码如下

要更改这些,请加载 MixerApi.Rest.crud.statusCodes 配置

return [
    'MixerApi' => [
        'Rest' => [
            'crud' => [
                'statusCodes' => [
                    'index' => 200,
                    'view' => 200,
                    'add' => 201,
                    'edit' => 200,
                    'delete' => 204
                ]
            ]
        ]
    ]
];

有关加载配置文件的更多信息,请参阅 CakePHP 文档中的 加载配置文件