美文网首页
ApiAdmin v3.0配置大全

ApiAdmin v3.0配置大全

作者: IT飞牛 | 来源:发表于2018-12-16 22:11 被阅读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字段,用于验证是否已登录。

    相关文章

      网友评论

          本文标题:ApiAdmin v3.0配置大全

          本文链接:https://www.haomeiwen.com/subject/bixfkqtx.html