ApiAdmin v3.0配置大全

作为一名具有一定后端开发经验但称不上丰富的IT人,想要自己独立完成一个Webapi项目,自知后台安全是整个项目生存的根本,自己又不具备强悍的后台api开发能力,于是就想到是否有后端的同仁已经准备了这种现成的Api管理后台,晚上搜罗了一圈,看到Apiadmin,专门作为api后台。
官方的介绍如下:

ApiAdmin从3.0开始,更加专注于API,将原先的MVC的架构转变为MVVM的方式,从管理系统本身出发彻底转变为纯API项目。所以ApiAdmin3.0是一个前后分离的项目,当前只针对PHP(后端) 部分,前端(Vue)部分是一个完全独立的全新项目,请移步 ApiAdmin-WEB

系统需求

PHP >= 5.6
MySQL >= 5.5.3
Redis

步骤:

一、配置本地站点

本地需要配置两个站点,一个提供api服务、一个显示后台页面。
准备好两个域名,task.6feel.com(apiadmin后台地址)、taskweb.6feel.com(apiadmin-web前端可视化页面地址),如果只做本地演示,可以修改本地host文件,配置以上两个域名。
这里使用wamp3.0.2(提取码:5q6a )安装的apache环境,修改httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "D:/wamp/www/ApiAdmin/public"
    ServerName task.6feel.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "D:/wamp/www/ApiAdmin-WEB/dist"
    ServerName taskweb.6feel.com
</VirtualHost>

.host文件修改

127.0.0.9  task.6feel.com
127.0.0.10  taskweb.6feel.com
二、下载官方源代码

安装好git,然后使用git下载ApiAdmin源代码和ApiAdmin-WEB源代码

//下载ApiAdmin
git clone https://gitee.com/apiadmin/ApiAdmin.git
//下载ApiAdmin-WEB
git clone https://gitee.com/apiadmin/ApiAdmin-WEB.git
三、配置ApiAdmin

1、找到项目中的SQL数据库文件,并导入到MySQL

ApiAdmin /  data /  apiadmin_3.0.6.sql

2、修改数据库配置文件
ApiAdmin / application / database.php

'hostname'        => '127.0.0.1',   //修改成您MYSQL的实际地址
    // 数据库名
    'database'        => 'apiadmin',    //导入SQL时的库名
    // 用户名
    'username'        => 'root',        // 具有您所配置数据库所有权的用户名,不推荐使用root账号
    // 密码
    'password'        => '123456',      // 密码

3、打开您的地址如看到以下信息,👍恭喜您成功的安装了 ApiAdmin的后端PHP部分🎉🎉🎉

{
    "code": 1,
    "msg": "操作成功",
    "data": {
        "Product": "NwTownApi",
        "Version": "v3.0",
        "Company": "ApiAdmin开发维护团队",
        "ToYou": "I'm glad to meet you(终于等到你!)"
    },
    "debug": [
        {
            "TpVersion": "5.0.16"
        }
    ]
}

如果本地没有安装redis,务必将config.php中缓存设置type=>File,默认是Redis

image.png
四、配置ApiAdmin-WEB

配置可视化后台部份需要了解vue,webpack,npm的基本知识,当然你可以和我一起来搭建它。
在开始之前,请先确保如下环境已经成功安装nodejs,然后进入项目目录,使用npm初始化项目:

npm install

经过一段时间等待,如果一切顺利,Node会自动帮你打开浏览器,提供预览。同时,您的Commond会显示webpack: Compiled successfully. !

1、修改配置文件:webpack.prod.config.js
/build/webpack.prod.config.js中的publicPath参数需要变更为你自己的前端域名

output: {
    publicPath: 'http://apiweb.6feel.com/dist/',  // 修改 https://admin.apiadmin.org 这部分为你的静态部署服务器所配置的域名 与PHP后端非同一域名,最后的/dist/必须带,指向静态文件目录
    filename: '[name].[hash].js',
    chunkFilename: '[name].[hash].chunk.js'
}

2、修改配置文件:config.js
/build/config.js中的baseUrl参数需要变更为你自己的后端域名

let config = {
    env: 'development',
    baseUrl: 'http://api.6feel.com/admin/'  // https://api.apiadmin.org更改为您项目的PHP后端域名
};
export default config;

3、编译项目,生成web文件

npm run build

执行命令后,我们可以看到dist目录下多出来一个dist目录和index.html文件。

image.png

我们把dist目录、index.html文件上传到静态部署服务器就可以在线上看到您的可视化后台了。

接口案例演示

1、创建获取access_token接口

当前算法主要服务于获取身份令牌(AccessToken)所进行的身份认证秘钥(signature)的计算。在请求高级接口的时候,系统会验证应用的合法性,也就是验证AccessToken。所以AccessToken是请求API的必要参数。

在请求获取AccessToken的接口时候,服务器会对用户合法性(signature)进行核验,具体的接口请求字段,请参看具体的接口文档。一、获取app_id和app_secret
目前获取应用ID和应用秘钥是由系统管理员发放,如果你还没有请联系管理员。 请注意:app_secret非常重要请妥善保管二、准备加密对象,并且根据字段名降序排序

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

三、生成原始串
将上面的数据构建成HTTP查询字符串,如下所示:
app_id=服务器颁发的应用ID&app_secret=服务器颁发的应用秘钥&device_id=设备唯一ID&rand_str=随机字符串&timestamp=当前系统时间戳四、计算秘钥
将第三步生成的字符串进行哈希计算(md5)获得最终身份认证秘钥。

打开 php程序域名/wiki 》算法详解,查看最新

根据最终生成的signature,组合地址,获取access_token,地址如下:http://task.6feel.com/api/5c1fa1bf987d8?app_id=86523959&device_id=web&rand_str=abcdefg&timestamp=1545577655&signature=efea65e1e9818df2693348d34069b604

image.png

接口配置:
image.png

2、创建根据用户id获取用户信息

接口配置:

image.png
请求参数:
参数名:id
类型:interge
规则:{min:1}

在application>api>controller下新建文件User.php,代码如下:

<?php
namespace app\api\controller;
use app\model\AdminUser;
use app\util\ReturnCode;

class User extends Base {
    public function getList() {
        $id = $this->request->param ( "id" );
        $userInfo = AdminUser::get ( [ 
                "id" => $id 
        ] );
        if ($userInfo) {
            return $this->buildSuccess ( $userInfo->toArray () );
        } else {
            return $this->buildFailed ( ReturnCode::NOT_EXISTS, "当前用户不存在" );
        }
    }
}

?>

postman提交结果:
Headers中配置参数:

Content-Type:application/x-www-form-urlencoded
version:v3.0
access-token:390da400f4d30b5b9f857e3c2cdbe263
user-token:空(当要求用户登录时必填)

提交结果:

image.png

常见报错

1、非常抱歉,您没有权限这么做!
可能原因:
需要在应用中添加的接口访问。需要重新签发AccessToken才能生效新的权限

image.png
2、缺少user-token
操作说明: http://www.iwonmo.com/archives/1333.html

系统说明

1、access-token

当开启access-token验证,接口header中必须带上access-token字段,用于验证是否有权限访问此应用。2、user-token

image.png

当开启 user-token验证,接口header中必须带上 user-token字段,用于验证是否已登录。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT飞牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值