2021-12-21

青龙openAPI非官方文档

前言:之前预告发一个小工具,本来后端部分已经写完,在本地测试成功,但是搬到服务器就出现错误,再加上沉迷游戏,先鸽了。授人以鱼不如授人以渔,发个openapi使用说明,应该有人需要,其实看青龙的源码也能看明白,这里以环境变量的api为例,抛砖引玉了。官方源码:https://github.com/whyour/qinglong/blob/develop/back/api/env.ts

一些缩写介绍:

id:青龙应用的client_id

secret:青龙应用的client_secret

token:通过id和secret请求得到的用于身份验证的东西

URL:代表http://ip:5700,在这里我代指青龙的地址,新版的端口应该是5600

话不多说,直接开始:

请求token:

方法:get,

请求参数:client_id、client_secret

示例:

const{data:{data:{token}}}=awaitaxios.get(URL+'/open/auth/token',{params:{client_id:ID,client_secret:SECRET}})

ps:此后的请求都要携带请求头,可以全局设置在axios里,也可以每次请求携带。

添加ck:

方法:post,

参数:name,value,remarks。对应JD_COOKIE,ck的值,备注。备注的值可以为空

示例:

const{data:{data:[{_id},...res]}}=awaitaxios.post(URL+'/open/envs',[{name,value,remarks}],{headers:{Authorization:"Bearer "+token}})

ps:参数需要以数组形式传递,否则格式验证出错。这里的_id是青龙返回的,用于后面的请求携带

更新ck:

方法:put

参数:

示例:

const{data:res}=awaitaxios.put(URL+'/open/envs',{

name,

value,

remarks,

_id},{

headers:{

Authorization:"Bearer "+token

   }

})

ps:这里的_id即相当于某个ck的身份证,需要更新某条ck就要传递它的身份证

删除ck:

方法:delete

参数:_id,需要删除的ck的id

示例:

const{data:res}=awaitaxios({

url:URL+'/open/envs',

method:'delete',

data:[_id],

headers:{Authorization:"Bearer "+token}

})

根据id值获取完整ck信息:

方法:get

参数:_id,参数直接拼接在url里面

示例:

const{data:{data:{value,status,remarks=''}}}=awaitaxios({

url:URL+'/open/envs/'+_id,

method:'get',

headers:{Authorization:"Bearer "+token}

})

ps:remarks可为空,避免报错设置一个默认值。value是ck值。status是ck的状态,用1和0表示启用和禁用。原本的返回值内容更加丰富,我这里只解构三个相对实用的信息。

获取所有ck信息:

方法:get

参数:可不填

示例:

const{data:{data}}=awaitaxios({

url:URL+"/open/envs",

method:'get',

headers:{"Authorization":"Bearer "+token}

})

ps:返回值是一个数组。由于环境变量中可能存在其他不是JD_COOKIE的变量,可以过滤出数组中name位JD_COOKIE的值

data.filter(item=>item.name=="JD_COOKIE")

还有其他接口,大家就自行探索吧。

你可能感兴趣的:(2021-12-21)