jianastrero/jugger-api

Jugger API使在laravel上创建API变得尽可能简单...

1.3.3 2019-01-05 14:14 UTC

This package is auto-updated.

Last update: 2024-09-16 18:53:29 UTC


README

使用CRUD创建API | 无代码API创建

GitHub release GitHub commits GitHub issues GitHub license

Jugger API

屏幕截图

Jugger API

Jugger API

描述

Jugger API使在laravel上创建API变得尽可能简单。它与您的应用程序一起运行,可以在http://yourdomain.com/jugger-api找到。它依赖于Passport、dbal和VueJS。Laravel Passport用于API的OAuth,VueJS用于创建API的Web部分。dbal用于转换/突变。Jugger API遵循API开发的最佳实践

依赖项

  • laravel/passport (取决于laravel版本,需要手动要求)
  • doctrine/dbal (自动要求)

功能

  • API路由的行政面板
  • 集成Laravel Passport
  • CRUD风格API创建
  • 使用HTTP状态码处理操作和错误
  • API版本控制
  • 仅JuggerAPI的Jugger行政账户
  • 在生产环境中自动禁用Web界面
  • 支持文件上传的API
  • 灵活

计划中的功能

  • API概述
  • 无代码突变转换

安装

1.要求包

composer require jianastrero/jugger-api

1.B要求Laravel Passport

Laravel 5.6及以上

composer require laravel/passport

Laravel 5.5

composer require laravel/passport=~4.0

Laravel 5.4

composer require laravel/passport=~2.0

2.根据您的laravel版本,您可能需要将其添加到config/app.php

'providers' => [
...
JianAstrero\JuggerAPI\JuggerAPIServiceProvider::class
...
]

3.发布Jugger API资源

php artisan vendor:publish --tag=jugger-api

4.使用数据库凭据设置配置

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

5.迁移您的应用程序、Passport和Jugger的表(这对JuggerAPI和Passport都适用)

php artisan migrate

6.用其自己的种子填充Jugger API

php artisan jugger:seed

7.创建您的Jugger API行政账户(默认用户名:juggeradmin,默认密码:AdminPassword)

php artisan jugger:adminphp artisan jugger:admin myadminuser myadminpassword

Passport (用于OAuth)更多信息请参阅:Laravel Passport

8.安装Passport

php artisan passport:install

9.在User模型上使用trait HasApiToken

use Notifiable, HasApiTokens;

10.在AuthServiceProvider上添加Passport::routes

public function boot()
{
    $this->registerPolicies();

    Passport::routes();
}

11.在config/auth.php中设置api的驱动程序,并将Jugger API行政人员的守卫添加到Passport中,并在config/auth.php中添加Jugger管理员提供程序

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],

    'juggeradmin-api' => [
        'driver' => 'passport',
        'provider' => 'juggeradmins',
    ],

    'juggeradmin' => [
        'driver' => 'session',
        'provider' => 'juggeradmins',
    ],
    ...
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'juggeradmins' => [
            'driver' => 'eloquent',
            'model' => JianAstrero\JuggerAPI\Models\JuggerAdmin::class,
        ]
    ],
],

VueJS

12.安装npm包

npm install

13.安装npm vue session

npm install vue-session

14.让webpack识别资源(《webpack.mix.js》)

mix
    .js('resources/jianastrero/jugger-api/js/jugger-api.js', 'public/js')
    .sass('resources/jianastrero/jugger-api/sass/jugger-api.scss', 'public/css');

15.编译资源

npm run dev

如何使用

运行您的Web应用程序(php artisan serve),然后打开您最喜欢的Web浏览器并导航到http://127.0.0.1:8000/jugger-api。从这里,您可以使用任何现有的用户进行登录。如果您没有用户,最好创建一个。 在未来的更改中,JuggerAPI将有自己的登录账户,这样就不会干扰您的应用程序。请记住,到目前为止,需要使用电子邮件和密码进行身份验证和登录。

登录后,您就可以创建新的路由、编辑或删除。请注意,务必不要删除JuggerAPI的记录,因为它会阻止您创建、修改或删除新记录。为了解决这个问题,请再次运行php artisan jugger:seed

要使模型被JuggerAPI识别,您的模型应使用HasTable和CanMutate特质。

use Notifiable, HasApiTokens, HasTable, CanMutate;

完成这些后,只需刷新您的页面,此模型将在添加和编辑模态选择中可用。

要允许在模型上添加和编辑,您需要定义可填充的字段。

protected $fillable = [
    'name', 'email', 'password',
];

对于自动转换,Jugger API使用模型的casts数组来转换数组。对于文件,使用juggerCasts数组。这将在新版本中更改以实现自动转换。

protected $casts = [
    'array_column' => 'array'
];

protected $juggerCasts = [
    'myfile' => 'file'
];

注意:在生产模式下(DEBUG关闭/为假),JUGGER API会自动禁用。这是为了防止在生产环境中更改API。

许可证

本软件根据MIT许可证发布。