mixerapi / rest
为 CakePHP 的 bake 控制台提供缺失的 RESTful API 组件。几秒钟内创建 RESTful API 框架。
Requires
- php: ^8.0
- cakephp/cakephp: ^4.2
- nikic/php-parser: ^4.8
- thecodingmachine/class-explorer: ^1.1
This package is auto-updated.
Last update: 2024-09-26 00:52:23 UTC
README
此插件通过为您创建路由来快速启动 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 文档中的 加载配置文件