# WEB API脚本

任意的后台脚本(.action.ts)中被标识为export并且以request_作为函数名前缀的函数都被视为WEB API脚本函数, 这个WEB API脚本函数对应的请求url结构为:

${scriptPath}?[method=${methodName}][params=otherParams]
  1. scriptPath:后台脚本的在元数据中的全路径,比如/sysdata/public/request.action
  2. methodName: 指定执行脚本中的哪个函数,格式为函数名去除前缀request_后的字符,比如函数名为request_task,参数传递task; 这个参数是可选的,不传递,默认会执行名为request_default的函数。

注意

所有WEB API开发都需要有考虑权限。

为了避免开发者忽略权限考虑导致数据泄露问题,默认情况下,如果后台脚本WEB APIpublic目录中, 系统不做权限限制,其他位置的后台脚本WEB API,系统要求只有登录了才可以访问。

# WEB API脚本模板

//import db from "svr-api/db"; //数据库相关API
//import meta from "svr-api/metadata"; //元数据、模型表相关API
//import utils from "svr-api/utils"; //通用工具函数
//import bean from "svr-api/bean"; //spring bean相关api

/**
 * action开发规范:
 * 1. 前端可以通过url或ajax请求访问到action,action会根据情况执行内部的脚本函数
 * 2. 默认将执行`request_main`函数,可以通过指定参数`method`指定执行的函数`request_{method}`,所有前端能访问到的函数都必须导出(export)
 * 3. 每个函数接受2个参数`request: HttpServletRequest, response: HttpServletResponse`
 * 4. 函数可以执行重定向、forward、返回json、返回文本、下载文件、上传文件……
 */

/**
 * main方法主要用于:
 * 1. 定时调度脚本执行入口
 * 2. 脚本开发界面的执行入口,用于调试,或执行其他批处理业务
 */
export function main(args: string[]) {

}

/**
 * 通过浏览器访问,当url中没有通过method指定执行的函数时,默认执行此函数。
 * 
 * @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) {
	return "hello world!";
}

/** */
export function request_method1(request: HttpServletRequest, response: HttpServletResponse, params: any) {

}
是否有帮助?
0条评论
评论