阅读时间:1 分钟
0 字
第一个 API
下面示例创建一个简单的资源接口,自动生成 CRUD 路由。
1. 创建模型
php
<?php
declare(strict_types=1);
namespace App\Demo\Models;
use Core\Database\Attribute\AutoMigrate;
use Core\Database\Model;
use Illuminate\Database\Schema\Blueprint;
#[AutoMigrate]
class DemoPost extends Model
{
public $table = 'demo_post';
public function migration(Blueprint $table): void
{
$table->id();
$table->string('title');
$table->text('content')->nullable();
$table->timestamps();
}
}2. 创建资源控制器
php
<?php
declare(strict_types=1);
namespace App\Demo\Admin;
use App\Demo\Models\DemoPost;
use Core\Resources\Action\Resources;
use Core\Resources\Attribute\Resource;
use Core\Validator\Data;
use Psr\Http\Message\ServerRequestInterface;
#[Resource(app: 'admin', route: '/demo/post', name: 'demo.post')]
class Post extends Resources
{
protected string $model = DemoPost::class;
public function transform(object $item): array
{
return [
'id' => $item->id,
'title' => $item->title,
'content' => $item->content,
];
}
public function format(Data $data, ServerRequestInterface $request, array $args): array
{
return [
'title' => $data->title,
'content' => $data->content,
];
}
}3. 同步数据库
bash
php dux db:sync4. API 路由(自动生成)
GET /admin/demo/post列表GET /admin/demo/post/{id}详情POST /admin/demo/post创建PUT /admin/demo/post/{id}编辑PATCH /admin/demo/post/{id}更新DELETE /admin/demo/post/{id}删除DELETE /admin/demo/post批量删除