宝塔接口API 前言 接口API 总结

宝塔是一款服务器管理软件,非常方便linux新手和运维人员使用。
为了实现自动化管理,我们需要调用宝塔的接口API。

接口API

  • 以nodejs为例,其它语言可参考宝塔官方API文档
const md5 = require('md5');


(async () => {
    try {
        const BT_KEY = 'your API-KEY'; // 接口秘钥(在宝塔面板-面板设置-API接口-接口秘钥中获取)
        let BT_PANEL = 'http://***.***.***.***:36677'; // 面板地址 通常为36677接口 也可使用域名访问
        let nowtime = new Date().getTime().toString();
        let type = '/data?action=getData&table=sites'; //获取网站列表为例
        BT_PANEL += type;
        let signature = {
            request_time: nowtime,
            request_token: md5(nowtime + md5(BT_KEY))
        };
        let query_data = { //获取网站列表query参数
            limit: 15,
        };
        let body_data = {};

        let headers = {
            "User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0',
        };
        // toolkit.post_header 带headers的POST请求
        // toolkit.join_url 将query参数拼接到url上
        let html = await toolkit.post_header(toolkit.join_url(BT_PANEL, Object.assign(signature, query_data)), body_data, headers);
        console.log(html.body);
    } catch (err) {
        console.log(err);
    }
})();

总结

  1. 使用API前需要,先在宝塔面板-面板设置-API接口-IP白名单中添加调用的服务器地址。如果为本机调用,还需要添加 127.0.0.1
  2. 宝塔官方API
  3. 本实例以获取网站列表为例,其它的只需要查看官方API查找并替换URL和提交参数即可。当然直接F12,通过开发者工具查看更加方便。
  4. API参数绝大多数为query参数、POST请求,官方的post参数大多数应该改为query参数才可以用。