rabibgalib/api-action

此软件包可以帮助您使用控制器、请求、特性、模型、迁移、操作类、辅助类来创建API。

v1.0.1 2023-09-18 06:57 UTC

This package is auto-updated.

Last update: 2024-09-19 14:53:59 UTC


README

Total Downloads Latest Stable Version License

Api Action 结构

        app
        └── ApiActionPackages
        │   └── {{ActionName}}   
        │   │   └── Actions
        │   │   │   ├── Create{{ActionName}}
        │   │   │   ├── Delete{{ActionName}}
        │   │   │   ├── Find{{ActionName}}
        │   │   │   ├── List{{ActionName}}
        │   │   │   └── Update{{ActionName}}
        │   │   └── Helpers
        │   │       └── {{ActionName}}Helper
        │   └── BaseHelper
        │   │   └── BaseHelper
        │   └── Traits
        │       └── ApiResponse
        └── Http
        │   └── Controllers
        │   │   └── {{ActionName}}Controller
        │   └── Requests
        │       └── {{ActionName}}Request
        └── Models
        │   └── {{ActionName}}Model
        └── database
            └── migrations
                └── create_{{ActionName}}_table

api-action

安装

composer require rabibgalib/api-action

配置

如果使用的是较低版本的Laravel,请将提供者添加到您的config/app.php中的provider部分。

\Rabibgalib\ApiAction\ApiActionServiceProvider::class,

如果您在新项目或未解决的问题中遇到419 (页面过期)错误或CORSXSRF问题,请更新App/Http/Middleware/VerifyCsrfToken.php如下 -

  protected $except = [
      "*"
  ];

运行命令

安装和配置完成后,运行以下命令 -

  php artisan make:api-action ActionName

示例

如果您想创建一个Post操作API。请写入以下命令 -

  php artisan make:api-action Api/Post

此命令将创建

  • 一个API PostController
  • 操作目录
    • 操作类
    • 辅助类
    • 特性
  • 表单请求
  • 模型
  • 迁移
    以实现应用程序的功能服务。

api-action-post.PNG

现在将以下代码放入Post模型中 -

protected $fillable = [
      'author',
      'title',
      'description'
  ];

现在将以下代码放入posts迁移中 -

$table->string('author')->nullable();
$table->string('title')->nullable();
$table->string('description')->nullable();

在迁移命令后,设置routes/web.php如下 -

use App\Http\Controllers\Api\PostController;
Route::get('posts', [PostController::class, 'index']);
Route::post('post', [PostController::class, 'create']);
Route::get('post/{id}', [PostController::class, 'find']);
Route::put('post/{id}', [PostController::class, 'update']);
Route::delete('post/{id}', [PostController::class, 'delete']);

现在,您可以在Postman或Insomnia中轻松测试API。

post-api-action.gif

祝您玩得开心。快乐编码。