使用以下命令安装:
composer require lswl/laravel-api
发布文件[可选]:
// 发布所有文件
php artisan vendor:publish --tag=lswl-api
// 只发布配置文件
php artisan vendor:publish --tag=lswl-api-config
// 只发布迁移文件
php artisan vendor:publish --tag=lswl-api-migrations
环境变量值参考:env
restful参考: restful
- 必须注册全局中间件
Lswl\Api\Middleware\ParamsHandlerMiddleware
- 可选中间件查看 中间件列表
- 修改
App\Exceptions\Handler
继承的方法为Lswl\Api\Handlers\ExceptionHandler
- 其他异常捕获重写父类
customResponse()
方法,内容参考response
- 修改
App\Providers\RouteServiceProvider
继承的方法为Lswl\Api\Providers\LswlRouteServiceProvider
- 路由服务提供者会自动扫描
routes
目录生成路由
// route
Route::get('tests', 'TestController@index');
// controller
use Lswl\Api\Controllers\BaseController;
use \Lswl\Api\Traits\ResourceControllerTrait;
class TestController extends BaseController
{
use ResourceControllerTrait;
}
// service
use \Lswl\Api\Services\BaseService;
class TestService extends BaseService
{
public function index()
{
$this->success('this is tests');
}
}
- 直接继承
Lswl\Api\Controllers\BaseController
- 可选继承
Lswl\Api\Models\BaseModel
、Lswl\Api\Models\BasePivot
、Lswl\Api\Models\UserModel
、Lswl\Api\Models\VersionModel
- 直接继承
Lswl\Api\Services\BaseService
- 直接继承
Lswl\Api\Daos\BaseDao
需继承
Lswl\Api\Controllers\BaseController
- 可使用
Lswl\Api\Traits\RequestInfoTrait
里的参数 - 可使用
Lswl\Api\Traits\UserInfoTrait
里的参数、方法
需继承
Lswl\Api\Models\BaseModel
- 可使用
Lswl\Database\Traits\DatabaseTrait
里的方法
需继承
Lswl\Api\Models\BasePivot
- 可使用
Lswl\Database\Traits\DatabaseTrait
里的方法
需继承
Lswl\Api\Services\BaseService
- 可使用
Lswl\Api\Traits\RequestInfoTrait
里的参数 - 可使用
Lswl\Api\Traits\UserInfoTrait
里的参数、方法
需继承
Lswl\Api\Daos\BaseDao
- 可使用
Lswl\Api\Traits\DaoSelectTrait
方法
用法加粗为必须调用
中间件 | 别名 | 用法 | 需要实现的契约或继承模型 |
---|---|---|---|
Lswl\Api\Middleware\ParamsHandlerMiddleware |
lswl.params.handler |
参数处理 | --- |
Lswl\Api\Middleware\ConvertEmptyStringsToNullMiddleware |
lswl.convert.empty.strings.to.null |
转换空字符串为null | --- |
Lswl\Api\Middleware\TrimStringsMiddleware |
lswl.trim.strings |
清除字符串空格 | --- |
Lswl\Api\Middleware\RequestLockMiddleware |
lswl.request.lock |
请求锁定 | --- |
Lswl\Api\Middleware\RequestLogMiddleware |
lswl.request.log |
记录请求日志(debug) | --- |
Lswl\Api\Middleware\CheckVersionMiddleware |
lswl.check.version |
检测应用版本 | Lswl\Api\Contracts\VersionModelInterface Lswl\Api\Models\VersionModel |
Lswl\Api\Middleware\CheckSignatureMiddleware |
lswl.check.signature |
验证请求签名 | --- |
Lswl\Api\Middleware\CheckTokenMiddleware |
lswl.check.token |
检测token,设置用户数据 | Lswl\Api\Contracts\UserModelInterface Lswl\Api\Models\UserModel |
Lswl\Api\Middleware\CheckSdlMiddleware |
lswl.check.sdl |
单设备登录,需要复写 Lswl\Api\Handlers\ExceptionHandler->sdlHandler() |
--- |
App\Exceptions\Handler
继承Lswl\Api\Handlers\ExceptionHandler
其他异常捕获调用父类
response()
方法并重写,参考Lswl\Api\Handlers\ExceptionHandler->response()
Lswl\Api\Providers\LswlApiServiceProvider
- 注册路由中间件
- 注册命令
- 合并配置
- 发布文件
Lswl\Api\Providers\LswlContractServiceProvider
- 绑定契约
Lswl\Api\Contracts\RequestParamsInterface
实现 - 绑定契约
Lswl\Api\Contracts\AgentInterface
实现 - 绑定契约
Lswl\Api\Contracts\UserModelInterface
实现 - 绑定契约
Lswl\Api\Contracts\VersionModelInterface
实现
Lswl\Api\Providers\LswlRouteServiceProvider
默认不启用
- 注册
base_path('routes')
下面所有 php 文件到路由
Lswl\Api\Traits\RequestInfoTrait
请求信息绑定
使用类:
Lswl\Api\Controllers\BaseController
Lswl\Api\Services\BaseService
Lswl\Api\Traits\ResourceControllerTrait
资源控制器 trait
Lswl\Api\Traits\ResourceServiceTrait
资源服务 trait
Lswl\Api\Traits\ResultThrowTrait
异常抛出辅助
Lswl\Api\Traits\UserInfoTrait
用户信息绑定
使用类:
Lswl\Api\Controllers\BaseController
Lswl\Api\Services\BaseService
Lswl\Api\Utils\Agent
请求 Agent 类
Lswl\Api\Utils\SdlCache
单设备登录类
Lswl\Api\Utils\Token
令牌相关类