lswl/laravel-api
Composer 安装命令:
composer require lswl/laravel-api
包简介
Laravel restful api.
README 文档
README
安装配置
使用以下命令安装:
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\VersionModelInterfaceLswl\Api\Models\VersionModel |
Lswl\Api\Middleware\CheckSignatureMiddleware |
lswl.check.signature |
验证请求签名 | --- |
Lswl\Api\Middleware\CheckTokenMiddleware |
lswl.check.token |
检测token,设置用户数据 | Lswl\Api\Contracts\UserModelInterfaceLswl\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()
服务提供者
API服务提供者
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 文件到路由
trait介绍
RequestInfoTrait.php
Lswl\Api\Traits\RequestInfoTrait请求信息绑定
使用类:
Lswl\Api\Controllers\BaseControllerLswl\Api\Services\BaseService
ResourceControllerTrait.php
Lswl\Api\Traits\ResourceControllerTrait资源控制器 trait
ResourceServiceTrait.php
Lswl\Api\Traits\ResourceServiceTrait资源服务 trait
ResultThrowTrait.php
Lswl\Api\Traits\ResultThrowTrait异常抛出辅助
UserInfoTrait.php
Lswl\Api\Traits\UserInfoTrait用户信息绑定
使用类:
Lswl\Api\Controllers\BaseControllerLswl\Api\Services\BaseService
工具类介绍
Agent.php
Lswl\Api\Utils\Agent请求 Agent 类
SdlCache.php
Lswl\Api\Utils\SdlCache单设备登录类
Token.php
Lswl\Api\Utils\Token令牌相关类
lswl/laravel-api 适用场景与选型建议
lswl/laravel-api 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 60 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 10 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「restful」 「laravel」 「lswl」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 lswl/laravel-api 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lswl/laravel-api 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 lswl/laravel-api 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PSR-7 compatible library for making CRUD API endpoints
This is a restful api to onesignal.
A RESTful API package for the Laravel and Lumen frameworks.
Alfabank REST API integration
Simple and lightweight HTTP client based cURL
RESTful API server for structured and self-documenting resources over JSON, XML, ...
统计信息
- 总下载量: 60
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-10-13