dbout / wp-module-rest-api
快速添加路由到WordPress Rest API。
1.1.1
2024-05-21 09:37 UTC
Requires
- php: >=8.1
- psr/cache: ^1.0|^2.0|^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.57
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.11
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^10.5
- rector/rector: ^1.1
- roots/wordpress: ^6.5
- szepeviktor/phpstan-wordpress: ^1.3
This package is auto-updated.
Last update: 2024-09-21 10:23:30 UTC
README
WordPress模块,专为希望快速添加路由到WordPress Rest API的开发者设计。
文档
如果您想了解更多关于WordPress API的工作方式,您可以阅读WordPress文档 :)
安装
需求
服务器需求基本上与WordPress相同,增加了一些
- PHP >= 8.1
- Composer
使用Composer安装
您可以使用Composer。如果您还没有安装Composer,请遵循安装说明。
composer require dbout/wp-module-rest-api
在您的PHP脚本中,请确保包含自动加载器
require __DIR__ . '/vendor/autoload.php';
使用
在创建您的第一个路由之前,您必须初始化该模块。建议在主题的functions.php
文件的开头或在mu-plugin
中添加此代码。
use Dbout\WpRestApi\RouteLoader; // One folder $loader = new RouteLoader(__DIR__ . '/src/Api/Routes'); // Multiple folders $loader = new RouteLoader([ __DIR__ . '/themes/my-theme/api' __DIR__ . '/src/Api/Routes', ]); // You can also use pattern $loader = new RouteLoader(__DIR__ . '/src/Modules/*/Api/Routes'); $loader->register();
💡模块将自动搜索文件夹及其子文件夹中的所有类。
💡您可以将一个选项对象作为RouteLoader的第二个参数传递: 阅读文档。
现在您已经初始化了模块,您只需在路由文件夹中创建您的第一个路由即可。
<?php use Dbout\WpRestApi\Attributes\Route; use Dbout\WpRestApi\Attributes\Action; #[Route( namespace: 'app/v2', route: 'document/(?P<documentId>\d+)' )] class Document { #[Action(Method::GET)] public function get(\WP_REST_Request $request): \WP_REST_Response { // Add your logic $id = $request->get_param('documentId'); return new \WP_REST_Response([ 'success' => true, ]); } #[Action(Method::DELETE)] public function delete(\WP_REST_Request $request): \WP_REST_Response { // Add your logic $id = $request->get_param('documentId'); return new \WP_REST_Response([ 'success' => true, ]); } }
您已创建了2个路由 🎉
GET:wp-json/app/v2/document/18
DELETE:wp-json/app/v2/document/18
逻辑非常简单,您可以使用以下方法:GET
,POST
,PUT
,PATCH
和DELETE
如果您需要,您可以传递一个方法数组来为操作定义多个方法
#[Action([Method::GET, Method::POST, Method::PUT])] public function execute(\WP_REST_Request $request): \WP_REST_Response { // Add your logic }
回调参数
如果您的路由包含参数,您可以将它们作为函数的参数检索
<?php use Dbout\WpRestApi\Attributes\Route; use Dbout\WpRestApi\Attributes\Action; #[Route( 'app/v2', 'document/(?P<documentId>\d+)' )] class Document { #[Action(Method::GET)] public function get(int $documentId): \WP_REST_Response { // Add your logic return new \WP_REST_Response([ 'success' => true, ]); } }
💡如果您的函数包含一个
WP_REST_Request
参数,则WP_REST_Request对象将作为参数传递。
贡献
我们鼓励您为此存储库做出贡献,这样每个人都可以从新功能、错误修复以及任何其他改进中受益。请查看我们的贡献指南以了解如何提出拉取请求。