davidnineroc / laravel-api-helper
This package is abandoned and no longer maintained.
No replacement package was suggested.
laravel 开发 API 助手!
v1.1.9
2018-03-17 13:09 UTC
Requires
- php: >=7.1
- tymon/jwt-auth: 1.0.0-rc.2
Requires (Dev)
- phpunit/phpunit: 6.2
Suggests
- davidnineroc/laravel-api-helper: API开发小助手
README
Requirement
- PHP 7.1
- Laravel 5.5.*
Installation & Usage
- 使用
composer
安装
composer require tymon/jwt-auth 1.0.0-rc.2 composer require davidnineroc/laravel-api-helper dev-master --dev
- 发布配置文件 (开始之前你完全可以把
app\Http\Controllers
目录删除了,然后按需配置)
php artisan vendor:publish --provider=DavidNineRoc\ApiHelper\ApiServiceProvider --tag=config
- 发布 api 文档(/public/docs) 请务必修改(/public/docs/index.html)里的
url: "api.json"
中的api.json
加上你的域名访问
php artisan vendor:publish --provider=DavidNineRoc\ApiHelper\ApiServiceProvider --tag=docs
- 创建一个资源控制器
php artisan api:controller UserController --resource
Example
- 快速完成登录相关 (基于 jwt-auth)
php artisan api:auth
make:apiAuth
会产生以下事件:
- 发布
config/jwt.php
配置文件.env
文件生成秘钥
- 修改
User
模型使其实现JWTSubject
接口- 更新
config/auth.php
文件- 在
routes/api.php
增加相关路由- 生成
AuthController
,具体目录查看config/apihelper.php
配置- 在
app/Exceptions/Handler::render
增加拦截jwt
,表单验证错误的异常抛出
- 访问
domain/api/auth/login
便可以进行登录了(更多路由,请查看routes/api.php
)
<?php namespace App\Http\Controllers\Api; use Illuminate\Http\Request; class UserController extends ApiController { public function error() { $this->notFound('请求数据不存在'); } public function login(Request $request) { /** * 在这里进行了表单验证,不需要做什么, * 因为已经在异常捕获了表单验证失败, * 并且默认返回第一个错误消息 * 当然,你也可以使用表单请求验证, * 注入一个表单请求类来完成验证 */ $this->validate($request, [ 'email' => 'required|email', 'password' => 'required|min:6' ]); // 身份验证失败 return $this->unAuthorized('账号或者密码错误'); } public function store(Request $request) { $user = User::create($request->all()); return $this->created('用户注册成功', $user); } public function show(User $user) { if ($notAdmin = true) { $this->forbidden('权限不足'); } return $this->setCode(200) ->setMsg('SUCCESS') ->setData($user) ->toJson(); } public function other() { $users = User::all(); // 有时,你可能需要返回更多的字段 $this->setCode(200) ->setMsg('SUCCESS') ->setData($users) ->setExtendField('count', $users->count()) ->setExtendField('field', 'value') ->toJson(); } }
Recommend
- 如果在控制器中找不到
create
和edit
方法,不要惊讶,因为API
开发中不需要这两个方法,请配合使用Route::apiResource();
- 使用
Eloquent: API Resources
转换模型数据
Errors
- 出现模型修改错误
- 确保
config/auth.php=>providers=>users=>model
配置正确了User
模型
- 确保