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\BaseController
Jmhc\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\BaseController
Jmhc\Restful\Services\BaseService
工具类介绍
Agent.php
Jmhc\Restful\Utils\Agent
请求 Agent 类
SdlCache.php
Jmhc\Restful\Utils\SdlCache
单设备登录类
Token.php
Jmhc\Restful\Utils\Token
令牌相关类