lake/lake-admin-addon-lapi

The lake-admin-addon-lapi is an addon package for lake-admin.

1.0.16 2021-02-04 16:09 UTC

This package is auto-updated.

Last update: 2024-11-05 00:12:09 UTC


README

项目介绍

  • 基于 lake-admin 后台管理框架的api管理系统模块插件

签名算法

  • 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
  • 第二步,在stringA最后拼接上key(即key=keyValue)得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
  • 特别注意以下重要规则:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 如果参数的值为空不参与签名;
◆ 参数名区分大小写;
◆ 验证调用返回或服务器主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验;
◆ 接口可能增加字段,验证签名时必须支持增加的扩展字段 

使用方法

  • composer安装
    • composer require lake/lake-admin-addon-lapi
  • 本地安装
    • 后台 本地模块->模块管理->本地安装 上传模块或者手动将模块上传到 /addon 目录
    • 手动放置模块或者上传模块请确保目录为 lapi/Service.php
  • 最后在 本地模块->模块管理->全部 安装添加的模块
  • 请求示例:/api/Index/index?name=name2&app_id=API2020090322513090789&nonce_str=6V0RVgWV9uCJXncv&timestamp=1599145016&sign=E3728BEEE2A5753CAD2556EA00C92A86

模块内 api 文件方法设置

  • 方法设置
<?php

namespace app\api\controller;

/**
 * @title 接口标题[必需]
 * @description 接口描述
 */
class Index
{
    /**
     * 接口方法
     *
     * @title 接口方法标题[必需]
     * @method GET[必需]
     * @request {"a":"c"}
     * @response {"d":"e"}
     * @description 接口方法描述
     * @listorder 100
     * @status 1
     */
    public function index()
    {
        return json([
            'code' => 0,
            'msg' => 'hello world!',
            'data' => 'api data',
        ]);
    }
}

模块内使用

  • trait 引用
use app\BaseController;
use app\lapi\traits\Lapi as LapiTrait;

class Index extends BaseController
{
    use LapiTrait;

    // 初始化
    protected function initialize()
    {
        parent::initialize();
        $this->checkApi();
    }
}
  • 继承 使用
use app\lapi\boot\Lapi as LapiBase;

class Index extends LapiBase
{
    // 初始化
    protected function initialize()
    {
        parent::initialize();
        
        $this->checkApi();
    }
}
  • 控制器中间件 使用
use app\BaseController;
use app\lapi\middleware\Lapi as LapiMiddleware;

class Index extends BaseController
{
    /**
     * 控制器中间件
     * @var array
     */
    protected $middleware = [
        LapiMiddleware::class,
    ];
    
    // 初始化
    protected function initialize()
    {
        parent::initialize();
    }
}

模块推荐

版权信息

本模块遵循Apache2开源协议发布,并提供免费使用。

本项目包含的第三方源码和二进制文件之版权信息另行标注。

版权所有 Copyright © deatil(https://github.com/deatil)

All rights reserved。