engeni/api-tools

此包的最新版本(v1.8.0)没有提供许可证信息。

Engeni - API 工具

v1.8.0 2024-08-08 16:53 UTC

README

!(http://engeni.com/emails/signature/logo.png)

Engeni API 工具是一组用于统一微服务 API 开发的类。

  • RESTful URL 和操作
  • 结果过滤、排序和搜索
  • 限制 API 返回的字段
  • 更新和创建返回资源表示
  • 上下文和 API 上下文处理
  • 还有很多...

请注意,您需要一个 Engeni API 密钥才能访问所有 Engeni API 资源。请联系 Engeni:info@engeni.com。

安装

首先安装 composer。然后

composer require engeni/api-tools

API 客户端服务提供者

此服务提供者可以用来将 API 客户端实例作为服务加载到 laravel 或 lumen 中。它需要安装 engeni/api-client

您可以创建自己的服务提供者并扩展 /Providers/ApiClientServiceProvider.php,或者直接使用它,记得在 lumen 或 laravel 应用中添加服务。

TokenAuth 中间件

使用此中间件对由 oauth2 服务器(Passport)保护的 lumen/laravel API 进行用户身份验证(/Http/Middleware/TokenAuth.php)。

您可以直接使用它或从它扩展并添加或覆盖功能。

使用示例

为了获得 Engeni API 功能,您必须使用 trair RestfulControllerTrait。

示例 1

仅使用特性

use Illuminate\Routing\Controller as BaseController;
use Engeni\ApiTools\Traits\RestfulControllerTrait;

class UserController extends BaseController
{
    use RestfulControllerTrait;
}

示例 2

扩展使用特性的类。然后 $model 必须定义以执行魔法(index (get /),show (get for id),store,update,destroy)

namespace App\Http\Controllers;

use Laravel\Lumen\Routing\Controller as BaseController;
use Engeni\ApiTools\Traits\RestfulControllerTrait;

class Controller extends BaseController
{
    use RestfulControllerTrait;
    //
}

然后

namespace App\Http\Controllers;

class UserController extends Controller
{
    // Trait related lines
    protected $model = 'App\Models\User'; // <- optional

    // optional
    protected $validationRules = ['username' => 'required',
                                  'name' => 'required',
                                  'password' => 'required'];
}

如果您没有定义 $model,则类将解析 Controller 类名以获取它。例如:从 UserController 将获取 User 并将模型定义为 App\Models\User

享受。Engeni 团队。 https://engeni.com