apiadmin初体验

apiadmin相对来说还是一个新生系统,使用上肯定还是有很多不便和bug;另外更是连官方文档都没有更新全,按照仅有的项目,你或许连部署完成都会成为问题;部署此项目的需求,会thinkphp,会配置nginx或者apache,会点vue(知道webpack)也行,了解以上几点部署应该不成问题。

本人也是新手一枚,牵涉到二次开发,文档是一点都没讲,我这里按照自己的测试初步写了一个post、get的自定义小接口

首先getAccessToken

官方文档里没有明确的说获取token需要的参数,接口wiki文档里稍微提了下这个算法,也是让初步接触apiadmin的我费了一番周章。

新建获取token接口

1564124893866

获取token按照图示操作即可,真实类库官方已经替我们写好了

新建获取token的请求参数

1564124945710

返回参数依照返回值上传下即可

1564125038598

如此getAccessToken接口开发完毕

获取toekn接口需要用到signature密匙,我们要先得到signature

获取signature

首先封装获取signature的参数

1
2
3
4
5
6
7
8
//排序好后应当是如下所示的数据
{
"app_id":"服务器颁发的应用ID",
"app_secret":"服务器颁发的应用秘钥", //请注意,此字段只是在计算加密串的时候在被加入,API请求请勿传递此字段值
"device_id":"设备唯一ID",
"rand_str":"随机字符串",
"timestamp":当前系统时间戳
}

生成原始字符串

将上面的数据构建成HTTP查询字符串,如下所示:

app_id=服务器颁发的应用ID&app_secret=服务器颁发的应用秘钥&device_id=设备唯一ID&rand_str=随机字符串&timestamp=当前系统时间戳

计算signature密匙

将第三步生成的字符串进行哈希计算(md5)获得最终身份认证秘钥(32位小写md5加密字符串)。

测试获取token接口

1564125137847

按照上面得到的signature测试接口,得到AccessToken。

自定义数据接口

我们以活动为例,创建一个查询、创建活动的接口。

首先创建数据表

参照apiadmin模型表创建admin_activity活动表

1564125740748

创建数据模型

在model中创建AdminActivity.php模型文件及对应的类,记得继承Base类

1564125799900

创建活动接口类及接口方法

api/controller中创建名为Activity.php的活动类,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php

namespace app\api\controller;


use app\model\AdminActivity;
use app\util\ReturnCode;

class Activity extends Base
{
/*
* 活动列表
*/
public function index(){
//获取所有活动
$activities = AdminActivity::all();
//定义活动列表数组
$data = [];
//将活动数据集转为数组格式
foreach($activities as $key=>$value){
$data[$key] = $value;
}
return $this->buildSuccess($data);


}

/*
* 获取活动详情
*/
public function getActivity(){
//获取用户发来的活动id参数
$activity_id = $this->request->get('id');
//获取单个活动对象
$activityObj = AdminActivity::get(['id'=>$activity_id]);
//判断活动是否存在
if($activityObj){
return $this->buildSuccess($activityObj->toArray());
}else{
return $this->buildFailed(ReturnCode::INVALID, '该活动不存在');
}
}

/*
* 添加活动
*/
public function store(){
//获取用户发来的活动参数
$data = $this->request->post();
//写入创建时间
$data['create_time']=time();
//实例化模型
$activity = new AdminActivity($data);
//保存数据至模型
$activity->allowField(true)->save();
return $this->buildSuccess($activity->toArray(), '添加成功');
}

}

添加单个活动详情接口

创建接口

1564126336842

添加请求参数

1564126362099

上传响应参数

1564126398074

测试接口

1564126457984

添加活动列表接口

创建接口

1564126505868

活动列表默认获取所有,故无需添加参数

上传响应参数

将postman查询的结果格式上传至参数即可

测试接口

1564126711492

添加创建活动接口

创建接口

1564126727793

添加请求参数

1564126739494

上传响应参数

1564126750423

测试接口

1564126770036