lake/laravel-admin-lapi
Composer 安装命令:
composer require lake/laravel-admin-lapi
包简介
The laravel-admin-lapi is an addon package for laravel-admin.
关键字:
README 文档
README
项目介绍
- 基于
laravel-admin后台管理框架的api管理系统模块扩展 - 签名算法包括md5和Sha256摘要算法。
- 扩展实现了api的签名验证,请求日志记录,每个appid单独授权api接口等等。
签名算法
- 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
- 第二步,在stringA最后拼接上key(即key=keyValue)得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
- 特别注意以下重要规则:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 如果参数的值为空不参与签名;
◆ 参数名区分大小写;
◆ 验证调用返回或服务器主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验;
◆ 接口可能增加字段,验证签名时必须支持增加的扩展字段
- 签名数据注意:默认签名数据包括
post及get数据集合,即签名数据为request()->all()。
使用方法
- 安装
composer require lake/laravel-admin-lapi
php artisan admin:import lapi
- 导入路由信息,解析api控制器注释
php artisan lapi:import-route
请求示例
- GET 请求
GET: https://yourdomain.com/api/aaa?app_id=API2020091315292812159&name=aaa&nonce_str=SNejQr2b9RdF1CH1&sign=B28ED49A3EF7CEB615AE735608039562×tamp=1600095342
- POST 请求
POST: https://yourdomain.com/api/aaa
body: {
"app_id": "API2020091315292812159",
"timestamp": 1600095789,
"nonce_str": "035tdGRU3i4yeb38",
"name": "aaa",
"sign": "36316F06DE635AD51C182C8D5E7495F0"
}
JSON 输出格式自定义
- 如果输出的json格式和需要的格式不一致,可以覆盖绑定默认json响应
- 可以在
\App\Providers\AppServiceProvider内或者其他服务提供者处添加以下代码
$this->app->bind(\Lake\Admin\Lapi\Contracts\Response::class, YourResponse::class);
- 使用json响应
app('lapi.json')->json(boolen $success, int $code, string|null $msg, array|null $data);
模块内 api 文件方法注释
- 方法注释
<?php
class Index
{
/**
* 接口方法
*
* @title 接口方法标题[必需]
* @request {"a":"c"}
* @response {"d":"e"}
* @description 接口方法描述
* @order 100
*/
public function index()
{
return json([
'code' => 0,
'msg' => 'hello lapi!',
'data' => 'lapi data',
]);
}
}
模块内使用
trait引用
use Lake\Admin\Lapi\Traits\Lapi as LapiTrait;
class Index
{
use LapiTrait;
// 初始化
protected function __contruct()
{
// $this->withData($data); // 自定义签名数据,非必须
$this->checkApi();
}
}
控制器中间件使用
在使用中间件的位置引入
\Lake\Admin\Lapi\Middleware\Lapi::class
或者
api.lapi
注意:如需自定义签名数据,可以在使用中间件之前添加 app('lapi.check')->withData($data);
开源协议
laravel-admin-lapi遵循Apache2开源协议发布,在保留本扩展版权的情况下提供个人及商业免费使用。
版权
- 该系统所属版权归 deatil(https://github.com/deatil) 所有。
lake/laravel-admin-lapi 适用场景与选型建议
lake/laravel-admin-lapi 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 56 次下载、GitHub Stars 达 9, 最近一次更新时间为 2020 年 09 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「admin」 「api」 「ext」 「laravel-admin」 「lapi」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 lake/laravel-admin-lapi 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lake/laravel-admin-lapi 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 lake/laravel-admin-lapi 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
2lenet/EasyAdminPlusBundle
Analysis module for finding problematical shop data.
MvcCore - Extension - Form - form extension with base classes to create and render web forms with HTML5 controls, to handle and validate submited user data, to manage forms sessions for default values, to manage user input errors and to extend and develop custom fields and field groups.
A PSR-7 compatible library for making CRUD API endpoints
MvcCore - Extension - Model - Database - base model database extension with base and abstract classes and interfaces to work with sql queries in more comfortable API.
MvcCore - Extension - Cache - register and use cache instances, cache interface.
统计信息
- 总下载量: 56
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2020-09-05