# WEB API脚本
任意的后台脚本(.action.ts
)中被标识为export
并且以request_
作为函数名前缀的函数都被视为WEB API
脚本函数,
这个WEB API
脚本函数对应的请求url结构为:
${scriptPath}?[method=${methodName}][params=otherParams]
scriptPath
:后台脚本的在元数据中的全路径,比如/sysdata/public/request.action
。methodName
: 指定执行脚本中的哪个函数,格式为函数名去除前缀request_
后的字符,比如函数名为request_task
,参数传递task
; 这个参数是可选的,不传递,默认会执行名为request_default
的函数。
注意
所有WEB API
开发都需要有考虑权限。
为了避免开发者忽略权限考虑导致数据泄露问题,默认情况下,如果后台脚本WEB API
在public目录
中,
系统不做权限限制,其他位置的后台脚本WEB API
,系统要求只有登录了才可以访问。
# WEB API脚本模板
/**
* @see https://docs.succbi.com/v5/dev/script/custom-action
*/
//import db from "svr-api/db"; //数据库相关API
//import utils from "svr-api/utils"; //通用工具函数
/**
* main方法主要用于:
*
* 1. 定时调度脚本执行入口
* 2. 脚本开发界面的执行入口,用于调试,或执行其他批处理业务
*/
export function main(args: string[]) {
}
/**
* HTTP请求访问,默认执行此函数。
*
* 规范:
*
* 1. 所有能访问到的函数都必须导出(export)
* 2. 可以通过url、ajax请求或第三方开发者通过HTTPClient工具访问到此脚本内部`request_`开头的函数
* 3. 默认将执行`request_main`函数,也可以通过指定url参数`method`,指定执行的函数`request_{method}`
* 4. 函数可以执行重定向、forward、返回json、返回文本、下载文件、上传文件……
*
* @param request `HttpServletRequest`
* @param response `HttpServletResponse`
* @param params 请求参数,通常是一个json对象:
* 1. params.param1 等价于 `request.getParameter('param1')`
* 2. 当请求的`Contect-Type`==`application/json`(前端通过`rc`函数进行的调用)时,那么返回请求体的
* json对象, 等价于`request.getRequestBody()`
*/
export function request_main(request: HttpServletRequest, response: HttpServletResponse, params: any): any | void {
return "hello world!";
}
/**
* 通过浏览器访问,url中传递参数`method=method1`执行此函数。
*/
export function request_method1(request: HttpServletRequest, response: HttpServletResponse, params: any): any | void {
}
/**
* `action_`开头的函数是用于程序流中给“执行后端脚本”调用的函数。
*
* @param params 程序流传入的参数
* @param nodeRunner 保留备用
* @return 函数的返回值将反馈给程序流执行器,通过节点的`$resultData `属性可以访问到
*/
export function action_method1(params: JSONObject, nodeRunner: any): any | void {
}
是否有帮助?
0条评论
评论