此包已 弃用 且不再维护。未建议替代包。

Laravel 5 的 JSON API CRUD 包

dev-master 2016-03-24 03:39 UTC

This package is not auto-updated.

Last update: 2020-01-24 16:06:22 UTC


README

laravel-cruddy

这是一个提供 Laravel 5 应用程序 CRUD JSON API 的简单包。

Build Status StyleCI Code Climate Codacy Badge Codacy Badge

安装

Composer: require

composer require askedio/laravel-cruddy:dev-master

服务提供者:config/app.php

将服务提供者添加到 providers 数组中。

'providers' => [
    Askedio\Laravel5ApiController\Providers\GenericServiceProvider::class,
        ...

模型:app/User.php

将特质添加到模型中,以启用 API 和搜索功能。 更多详情和选项。

class User extends Authenticatable
{

    use \Askedio\Laravel5ApiController\Traits\ModelTrait;
    use \Askedio\Laravel5ApiController\Traits\SearchableTrait;
    ...

控制器:app/Http/Controllers/Api/UserController.php

为您的 API 创建一个新的控制器。 更多详情和选项。

<?php

namespace App\Http\Controllers\Api;

use Illuminate\Routing\Controller as BaseController;

class UserController extends BaseController
{
    use \Askedio\Laravel5ApiController\Traits\ControllerTrait;
    public $modal = \App\User::class;
}

路由:app/Http/routes.php

为您的 API 创建一个前缀组,并分配 API 和 jsonapi 中间件。 更多详情和选项。

Route::group(['prefix' => 'api', 'middleware' => ['api', 'jsonapi']], function()
{
  Route::resource('user', 'Api\UserController');
});


用法

使用 Laravel 的资源路由、GET、PATCH、POST 和 DELETE 消费 API。 更多详情和选项。

示例

GET /api/user/1
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": {
    "type": "users",
    "id": 1,
    "attributes": {
      "id": 1,
      "name": "Test User",
      "email": "test@test.com"
    }
  },
  "links": {
    "self": "/api/user/1"
  },
  "jsonapi": {
    "version": "1.0",
    "self": "v1"
  }
}



评论

我的目标是提供一个即插即用的 JSON API,用于 Laravel。您不需要对模型进行太多配置即可启用 API,但如果您还需要像关系、搜索等高级功能,您也可以获得这些功能。

如果您有任何评论、意见或可以进行代码审查,请在此处或 Twitter 上联系我,@asked_io。您也可以在我的网站上关注我,asked.io

谢谢。

-William