描述
示例: register_rest_route(namespace, name, args, override)
功能: 注册 REST API 接口
参数
namespace
(String)(Required)
命名空间
name
(String)(Required)
REST API名称
args
(Object)(Required)
methods
(String)(Required)
请求方式,如:post、get
callback
(Function)(Required)
回调方法
参数 callback(data,req)
- data
(Object)
服务器接收到的数据
- req
(Object)
node express的请求对象
返回
Promise
3.0新增
等待Promise完成后异步返回结果
Object
返回普通对象时直接返回结果
permission_callback
(Function)(Optional)
权限回调方法,该方法接收1个参数(power)。需要鉴权时,可使用此方法鉴定权限级别,不带此参数则任何人都可请求。
- 参数
permission_callback(power)
- 返回
Boolean
true执行callback,false返回权限错误提示
override
(Boolean)(Optional)
若先前已有接口地址,则忽略重复注册。加上此参可强制复写旧的接口信息。
返回
(Void)
无
示例
同步(服务器收到后立即处理并返回)
register_rest_route('nv','get-theme-list',{
methods: 'post',
callback(data,req) {
return {
list: nv_theme_list(),
current_theme: global.nv_current_theme_folder,
selected_theme: get_option('_nv_selected_theme_folder','default'),
}
},
permission_callback: (power) => power >= 10,
});
异步(等待5秒后返回数据)
register_rest_route('nv','get-theme-list',{
methods: 'post',
callback(data,req) {
return new Promise(resolve => {
setTimeout(()=>{
resolve({
list: nv_theme_list(),
current_theme: global.nv_current_theme_folder,
selected_theme: get_option('_nv_selected_theme_folder','default'),
})
}, 5000)
})
},
permission_callback: (power) => power >= 10,
});
鉴权
接口的授权鉴定是在请求头(Header)中加入nvnonce
参数实现的。若有permission_callback方法,在服务器收到该参数后,将判断用户的权限,等级合格的用户才能访问该接口。
对于无权限的用户,将返回错误401,并带有“Permission declined!”字样的信息。