店滴开发者手册店滴开发者手册
首页
指南
插件
接口
智能设备
element后台
SDK
首页
指南
插件
接口
智能设备
element后台
SDK
  • 接口

    • 项目文档
    • /api/api_interface_specification.html
    • 系统安装指南
    • 表单
    • saas
    • 支付
    • 命令行
    • 生成模型类
    • 控制器
    • search
    • 操作单个状态类字段
    • 模型
    • behavior
    • 验证规则
    • 数据库配置指南
    • 字段设计要求
    • /api/db_sharding.html
    • /api/db_read_write_separation.html
    • 检查MySQL服务是否运行
    • 原生sql执行与操作
    • /api/db_transaction.html
    • 关于缓存
    • cookie
    • 用户信息获取
    • /api/event_addonsEvent.html
    • 队列
    • composer 的使用

控制器

手机端接口控制器

  • 继承父类 api\controllers\AController
  • 设置操作的 modelClass
  • 设置不需要签名验证的方法 signOptional
<?php

/**
 * @Author: Wang Chunsheng 2192138785@qq.com
 * @Date:   2020-03-10 14:00:06
 * @Last Modified by:   Wang chunsheng  email:2192138785@qq.com
 * @Last Modified time: 2022-06-16 17:52:34
 */

namespace addons\diandi_distribution\api;

use addons\diandi_distribution\models\goods\DistributionGoodsBaseCollect;
use addons\diandi_distribution\services\CartService;
use api\controllers\AController;
use common\helpers\ImageHelper;
use common\helpers\ResultHelper;
use Yii;

/**
 * Class CartController.
 */
class CartController extends AController
{
    public $modelClass = '\common\models\DdGoods';

    protected $signOptional = ['Integral'];

    public function actionSearch()
    {
        return [
            'error_code' => 20,
            'res_msg' => 'ok',
        ];
    }

    public function actionAdd()
   {
        $user_id = Yii::$app->user->identity->member_id;

        $goods_id = intval($_GPC['goods_id']);
        $num = intval($_GPC['num']);
        $spec_id = $_GPC['spec_id'];

        $list = CartService::confirm($user_id, $goods_id, $num, $spec_id);

        return ResultHelper::json(200, '加入购物车成功', $list);
    }

    
}

后台接口控制器

  • 继承父类 admin\controllers\AController
  • 设置操作的 modelClass
  • 设置检索类名称 modelSearchName (注意:需要与原检索类文件名称相同,不能与as后的名称相同)
  • 设置不需要签名验证的方法 signOptional
<?php

/**
 * @Author: Wang chunsheng  email:2192138785@qq.com
 * @Date:   2021-11-10 12:36:05
 * @Last Modified by:   Wang chunsheng  email:2192138785@qq.com
 * @Last Modified time: 2022-03-07 18:48:09
 */

namespace addons\diandi_honorary\admin;

use addons\diandi_honorary\models\HonoraryAar;
use addons\diandi_honorary\models\searchs\HonoraryAar as HonoraryAarSearch;
use admin\controllers\AController;
use common\helpers\DateHelper;
use common\helpers\ErrorsHelper;
use common\helpers\ImageHelper;
use common\helpers\ResultHelper;
use common\helpers\StringHelper;
use Yii;
use yii\web\NotFoundHttpException;

/**
 * ArrController implements the CRUD actions for HonoraryAar model.
 */
class ArrController extends AController
{
    public $modelSearchName = 'HonoraryAar';

    public $modelClass = '';

    public function actionIndex()
    {
        $searchModel = new HonoraryAarSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
        $time = DateHelper::monthsAgo(3);
        $d = date('d', time());

        return ResultHelper::json(200, '获取成功', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
            'export_time' => [
                date('Y-m-'.$d.' 00:00:00', $time['start']),
                date('Y-m-d 00:00:00', time()),
            ],
        ]);
    }
}

接口token验证

控制器私有属性:authOptional

默认全部需要验证

class ArrController extends AController
{
    protected $authOptional = [];
}

放行某一个方法,例如index

class ArrController extends AController
{
    protected $authOptional = ['index'];

    public function actionIndex()
    {
        $searchModel = new HonoraryAarSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
        $time = DateHelper::monthsAgo(3);
        $d = date('d', time());

        return ResultHelper::json(200, '获取成功', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
            'export_time' => [
                date('Y-m-'.$d.' 00:00:00', $time['start']),
                date('Y-m-d 00:00:00', time()),
            ],
        ]);
    }
}

放行控制器全部方法

class ArrController extends AController
{
    protected $authOptional = ['*'];
}

接口签名验证

多用在作为服务提供sdk或接口给其他第三方进行使用 

控制器私有属性:signOptional

默认 ['*'] 全部不需要验证

class ArrController extends AController
{
    protected $signOptional = ['*'];
}

单独某一个方法进行签名,例如index

class ArrController extends AController
{
    protected $signOptional = ['index'];

    public function actionIndex()
    {
        $searchModel = new HonoraryAarSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
        $time = DateHelper::monthsAgo(3);
        $d = date('d', time());

        return ResultHelper::json(200, '获取成功', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
            'export_time' => [
                date('Y-m-'.$d.' 00:00:00', $time['start']),
                date('Y-m-d 00:00:00', time()),
            ],
        ]);
    }
}

控制器全部方法需要进行签名

class ArrController extends AController
{
    protected $authOptional = ['all'];
}
Prev
生成模型类
Next
search