jmhc / laravel-api
Laravel restful api.
Requires
- php: ^7.3
- ext-json: *
- ext-openssl: *
- jenssegers/agent: ^2.0
- jmhc/laravel-api-lang: ^1.0
- jmhc/laravel-database: ^8.0
- jmhc/laravel-log: ^8.0
- jmhc/laravel-support: ^8.0
This package is auto-updated.
Last update: 2024-09-08 10:13:50 UTC
README
安装配置
使用以下命令安装:
composer require jmhc/laravel-api
发布文件[可选]:
// 发布所有文件
php artisan vendor:publish --tag=jmhc-api
// 只发布配置文件
php artisan vendor:publish --tag=jmhc-api-config
// 只发布迁移文件
php artisan vendor:publish --tag=jmhc-api-migrations
使用说明
环境变量值参考:env
restful参考: restful
快速使用
中间件
- 必须注册全局中间件
Jmhc\Restful\Middleware\ParamsHandlerMiddleware - 可选中间件查看 中间件列表
异常处理
- 修改
App\Exceptions\Handler继承的方法为Jmhc\Restful\Handlers\ExceptionHandler - 其他异常捕获重写父类
customResponse()方法,内容参考response
使用路由服务提供者
- 修改
App\Providers\RouteServiceProvider继承的方法为Jmhc\Restful\Providers\JmhcRouteServiceProvider - 路由服务提供者会自动扫描
routes目录生成路由
示例代码
// route Route::get('tests', 'TestController@index'); // controller use Jmhc\Restful\Controllers\BaseController; use \Jmhc\Restful\Traits\ResourceControllerTrait; class TestController extends BaseController { use ResourceControllerTrait; } // service use \Jmhc\Restful\Services\BaseService; class TestService extends BaseService { public function index() { $this->success('this is tests'); } }
控制器
- 直接继承
Jmhc\Restful\Controllers\BaseController
模型
- 可选继承
Jmhc\Restful\Models\BaseModel、Jmhc\Restful\Models\BasePivot、Jmhc\Restful\Models\UserModel、Jmhc\Restful\Models\VersionModel
服务层(逻辑层)
- 直接继承
Jmhc\Restful\Services\BaseService
控制器
需继承
Jmhc\Restful\Controllers\BaseController
- 可使用
Jmhc\Restful\Traits\RequestInfoTrait里的参数 - 可使用
Jmhc\Restful\Traits\UserInfoTrait里的参数、方法
模型
普通模型
需继承
Jmhc\Restful\Models\BaseModel
- 可使用
Jmhc\Database\Traits\DatabaseTrait里的方法
中间表模型
需继承
Jmhc\Restful\Models\BasePivot
- 可使用
Jmhc\Database\Traits\DatabaseTrait里的方法
服务层(逻辑层)
需继承
Jmhc\Restful\Services\BaseService
- 可使用
Jmhc\Restful\Traits\RequestInfoTrait里的参数 - 可使用
Jmhc\Restful\Traits\UserInfoTrait里的参数、方法
中间件
用法加粗为必须调用
异常处理
App\Exceptions\Handler继承Jmhc\Restful\Handlers\ExceptionHandler其他异常捕获调用父类
response()方法并重写,参考Jmhc\Restful\Handlers\ExceptionHandler->response()
服务提供者
API服务提供者
Jmhc\Restful\Providers\JmhcApiServiceProvider
- 注册路由中间件
- 注册命令
- 合并配置
- 发布文件
契约服务提供者
Jmhc\Restful\Providers\JmhcContractServiceProvider
- 绑定契约
Jmhc\Restful\Contracts\RequestParamsInterface实现 - 绑定契约
Jmhc\Restful\Contracts\AgentInterface实现 - 绑定契约
Jmhc\Restful\Contracts\UserModelInterface实现 - 绑定契约
Jmhc\Restful\Contracts\VersionModelInterface实现
路由服务提供者
Jmhc\Restful\Providers\JmhcRouteServiceProvider默认不启用
- 注册
base_path('routes')下面所有 php 文件到路由
trait介绍
RequestInfoTrait.php
Jmhc\Restful\Traits\RequestInfoTrait请求信息绑定
使用类
Jmhc\Restful\Controllers\BaseControllerJmhc\Restful\Services\BaseService
ResourceControllerTrait.php
Jmhc\Restful\Traits\ResourceControllerTrait资源控制器 trait
ResourceServiceTrait.php
Jmhc\Restful\Traits\ResourceServiceTrait资源服务 trait
ResultThrowTrait.php
Jmhc\Restful\Traits\ResultThrowTrait异常抛出辅助
UserInfoTrait.php
Jmhc\Restful\Traits\UserInfoTrait用户信息绑定
使用类
Jmhc\Restful\Controllers\BaseControllerJmhc\Restful\Services\BaseService
工具类介绍
Agent.php
Jmhc\Restful\Utils\Agent请求 Agent 类
SdlCache.php
Jmhc\Restful\Utils\SdlCache单设备登录类
Token.php
Jmhc\Restful\Utils\Token令牌相关类