Skip to content

Latest commit

 

History

History
606 lines (466 loc) · 13.7 KB

File metadata and controls

606 lines (466 loc) · 13.7 KB

获取【全部】配置信息

通过该接口,你可以获取到全部的公开配置信息

http://[域名]/api/options

请求参数:[有]

参数名称 是否必选 参数类型 默认值 说明
cache bool true 是否获取缓存数据

** ajax **

<!-- 导入JQ -->
<script src="//code.jquery.com/jquery-3.5.1.min.js"></script>

<script>
$.ajax({
  url:'http://test.inis.cn/api/options',
  type:'GET',
  dataType:'JSON',
  success: (res) => {
	// 状态码 200 表示请求成功
	if(res.code === 200){
	  console.log(res.data)
	}else{
	  console.log(res)
	}
  }
})
</script>

** axios **

<!-- 导入axios -->
<script src="//unpkg.com/axios/dist/axios.min.js"></script>

<script>
axios.get('http://test.inis.cn/api/options').then((res) => {
  // 状态码 200 表示请求成功
  if(res.data.code == 200){
	console.log(res.data)
  }else{
	console.log(res)
  }
})
</script>

** php **

<?php
// 定义头部信息
header('content-type:application/json');
// API接口
$url  = 'http://test.inis.cn/api/options';

$curl = curl_init(); 
curl_setopt($curl,CURLOPT_URL,$url); 
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$data = curl_exec($curl); 
curl_close($curl);     

// 输出数据
echo $data;
请求成功返回的数据结构
{
    "code":200,
    "msg":"数据请求成功!",
    "data":{
        "site":{
            "value":null,
            "opt":{
                "title":"INIS API",
                "keywords":"INIS API,inis博客系统,inis程序,inis系统",
                "description":"inis · 新一代博客系统!这是市面上为数不多的新一代博客系统,整站封装,全站分离,真正意义上的前后端分离。每一行代码都用心设计,用最少的代码量和最优雅架构设计,实现最完美的系统,让你拥有更极致的体验。复杂的研究留给我们,简单的体验留给用户!",
                "image":"//q.qlogo.cn/g?b=qq&amp;nk=97783391&amp;s=640",
                "favicon":"//q.qlogo.cn/g?b=qq&amp;nk=97783391&amp;s=640",
                "url":"",
                "copy":"备案号"
            }
        },
        "webmaster":{
            "value":"",
            "opt":{
                "qq":"97783391",
                "gitee":"racns",
                "weibo":"racns",
                "github":"racns",
                "wechat":"v-racns",
                "users_id":"1",
                "description":"&lt;p class=\"text-info\"&gt;这是关于我的HTML描述呀&lt;/p&gt;"
            }
        }
    }
}

获取【一条】配置信息

通过该接口,你可以获取指定友链的配置信息和非公开的配置信息

http://[域名]/api/options

请求参数:[有]

参数名称 是否必选 参数类型 默认值 说明
key string
cache bool true 是否获取缓存数据

** ajax **

<!-- 导入JQ -->
<script src="//code.jquery.com/jquery-3.5.1.min.js"></script>

<script>
$.ajax({
  url:'http://test.inis.cn/api/options',
  type:'GET',
  dataType:'JSON',
  data: {"key":"title"}
  success: (res) => {
	// 状态码 200 表示请求成功
	if(res.code === 200){
	  console.log(res.data)
	}else{
	  console.log(res)
	}
  }
})
</script>

** axios **

<!-- 导入axios -->
<script src="//unpkg.com/axios/dist/axios.min.js"></script>

<script>
axios.get('http://test.inis.cn/api/options',{
    params:{"key":"title"}  
  }).then((res) => {
  // 状态码 200 表示请求成功
  if(res.data.code == 200){
	console.log(res.data)
  }else{
	console.log(res)
  }
})
</script>

** php **

<?php
// 定义头部信息
header('content-type:application/json');
// API接口
$url  = 'http://test.inis.cn/api/options?key=title';

$curl = curl_init(); 
curl_setopt($curl,CURLOPT_URL,$url); 
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$data = curl_exec($curl); 
curl_close($curl);     

// 输出数据
echo $data;
请求成功返回的数据结构
{
    "code":200,
    "msg":"数据请求成功",
    "data":{
        "keys":"title",
        "value":"INIS API"
    }
}

获取【配置列表】

通过该接口,你可以获取到系统内已存在的配置列表
可以根据返回的列表信息,获取对应的配置信息

http://[域名]/api/options/list

请求参数:[有]

参数名称 是否必选 参数类型 默认值 说明
cache bool true 是否获取缓存数据

** ajax **

<!-- 导入JQ -->
<script src="//code.jquery.com/jquery-3.5.1.min.js"></script>

<script>
$.ajax({
  url:'http://test.inis.cn/api/options/list',
  type:'GET',
  dataType:'JSON',
  success: (res) => {
	// 状态码 200 表示请求成功
	if(res.code === 200){
	  console.log(res.data)
	}else{
	  console.log(res)
	}
  }
})
</script>

** axios **

<!-- 导入axios -->
<script src="//unpkg.com/axios/dist/axios.min.js"></script>

<script>
axios.get('http://test.inis.cn/api/options/list').then((res) => {
  // 状态码 200 表示请求成功
  if(res.data.code == 200){
	console.log(res.data)
  }else{
	console.log(res)
  }
})
</script>

** php **

<?php
// 定义头部信息
header('content-type:application/json');
// API接口
$url  = 'http://test.inis.cn/api/options/list';

$curl = curl_init(); 
curl_setopt($curl,CURLOPT_URL,$url); 
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$data = curl_exec($curl); 
curl_close($curl);     

// 输出数据
echo $data;
请求成功返回的数据结构
{
    "code":200,
    "msg":"数据请求成功!",
    "data":[
        "copy",                 // 备案号
        "description",          // 网站描述
        "domain",               // 域名白名单 - 不可获取
        "email_serve",          // 邮箱服务配置 - 不可获取
        "email_template_1",     // 邮件模板
        "email_template_2",     // 邮件模板
        "email_template_3",     // 邮件模板
        "geek_config",          // geek主题配置
        "inis_applets",         // 小程序配置
        "inis_config",          // inis默认主题配置
        "keywords",             // 网站关键词
        "site_conf",            // 站点配置 - 不可获取
        "site_ico",             // 站点ico
        "site_img",             // 站点图片或头像
        "site_url",             // 站点地址
        "theme",                // 主题模式
        "title",                // 站点标题
        "webmaster"             // 站长信息
    ]
}

【新增或修改】配置

通过该接口,你可以新增或者修改配置数据
前提条件是必须登录且拥有权限的用户
只允许账号为 管理员 且 未被禁用 的账号进行提交

http://[域名]/api/options

请求参数:[有]

参数名称 是否必选 参数类型 默认值 说明 备注
login-token string 登录密钥 用于判断是否拥有权限(可以在参数或headers中提交,推荐header提交)
keys string null 类似于ID,唯一 库里已有表示修改,没有表示新增
value string null longtext字段 可以存储超长的数据
opt object null 存储JSON数据 可以提交一个对象格式的数据或者类似对象格式的字符串
cover bool false 是否覆盖数据 默认情况下为替换数据,但不覆盖数据

** ajax **

<!-- 导入JQ -->
<script src="//code.jquery.com/jquery-3.5.1.min.js"></script>

<script>
// 提交
$('#btn-save').on('click', () => {
	
	let token       = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOi...';
    let keys        = 'test';
    let value       = '这是一个测试的内容!';
    let opt	        = {test:"这是一个测试的JSON", array:"1,2,3"};   // 对象格式

    let data = {'login-token':token, keys, value, opt};

    $.ajax({
          url:'http://test.inis.cn/api/options',
          type:'POST',
          data:data,
          dataType:'JSON',
          success: (res) => {
              if(res.code === 200){
                console.log(res.data)
              }else{
                console.log(res)
              }
          }
      })
  })
</script>

** axios **

<!-- 导入axios -->
<script src="//unpkg.com/axios/dist/axios.min.js"></script>

<script>
axios.post('http://test.inis.cn/api/options',{},{
	headers: {
		'Content-Type':'application/x-www-form-urlencoded'
	},
	params: {
		"login-token"  : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOi...",
		keys           : 'test',
		value          : '这是一个测试的内容!',
		opt            : '{test:"这是一个测试的JSON", array:"1,2,3"}',  // 对象格式的字符串
	}
}).then(res=>{
  // 状态码 200 表示请求成功
  if(res.data.code == 200){
	console.log(res.data)
  }else{
	console.log(res)
  }
})
</script>

** php **

<?php
// 定义头部信息
header('content-type:application/json');

// 设置POST数据
$data = [
    'login-token'  => "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOi...",
    keys           => 'test',
	value          => '这是一个测试的内容!',
	opt            => ["test"=>"这是一个测试的JSON", "array"=>"1,2,3"],  // PHP中,这里可以是一个数组或者对象格式的字符串
];

// 提交接口
$url = 'http://test.inis.cn/api/options';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_POST, 1);

// 设置 user-agent 
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Linux; Android 10; Mi9 Pro 5G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.117 Mobile Safari/537.36');

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$output = curl_exec($ch);

curl_close($ch);

// 输出数据
echo $output;
请求成功返回的数据结构
{
    "code": 200,
    "msg": "ok",
    "data": []
}

【删除】配置

通过该接口,你可以删除一条或者多条文章数据
前提条件是必须登录且拥有权限的用户
只允许账号为 管理员 且 未被禁用 的账号进行提交

http://[域名]/api/options

请求参数:[有]

参数名称 是否必选 参数类型 默认值 可选参数 说明 备注
login-token string 登录密钥 用于判断是否拥有权限(可以在参数或headers中提交,推荐header提交)
mode string null remove 模式
keys string null 类似于ID,唯一

** ajax **

<!-- 导入JQ -->
<script src="//code.jquery.com/jquery-3.5.1.min.js"></script>

<script>
// 发表评论按钮
$('#btn-save').on('click', () => {
	
	let token       = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOi...';
    let mode        = 'delete';
    let keys        = 'test';

    let data = {'login-token':token, mode, keys};

    $.ajax({
          url:'http://test.inis.cn/api/options',
          type:'POST',
          data:data,
          dataType:'JSON',
          success: (res) => {
              if(res.code === 200){
                console.log(res.data)
              }else{
                console.log(res)
              }
          }
      })
  })
</script>

** axios **

<!-- 导入axios -->
<script src="//unpkg.com/axios/dist/axios.min.js"></script>

<script>
axios.post('http://test.inis.cn/api/options',{},{
	headers: {
		'Content-Type':'application/x-www-form-urlencoded'
	},
	params: {
		"login-token"  : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOi...",
		mode           : 'delete',
		keys           : 'test',
	}
}).then(res=>{
  // 状态码 200 表示请求成功
  if(res.data.code == 200){
	console.log(res.data)
  }else{
	console.log(res)
  }
})
</script>

** php **

<?php
// 定义头部信息
header('content-type:application/json');

// 设置POST数据
$data = [
    'login-token'  => "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOi...",
    mode           => 'delete',
	keys           => 'test',
];

// 提交接口
$url = 'http://test.inis.cn/api/options';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_POST, 1);

// 设置 user-agent 
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Linux; Android 10; Mi9 Pro 5G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.117 Mobile Safari/537.36');

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$output = curl_exec($ch);

curl_close($ch);

// 输出数据
echo $output;
请求成功返回的数据结构
{
    "code": 200,
    "msg": "ok",
    "data": []
}