将Google脚本作为webApp发布时,每个脚本都允许使用GET和POST HTTP方法。
显然,GET是获取一些数据。但是,当您尝试获取特定值(例如,使用过滤器参数)并且未找到任何值时,如何强制脚本返回404错误 - 未找到?
从我的角度来看有两种可能性:
总是回来 如果输入数据匹配则便于使用的结构 API。类似的东西:
{ { “错误”:“如果一切正常,则为0,否则为特定代码”, “errorMessage”:“可能错误的描述” }, “data”:根据查询结果清空或填充数据 }
答案 0 :(得分:1)
我认为您目前无法在GAS中强制设置响应代码,但您的第二个选项听起来可行。这样的事可能适合你:
function doGet(e){
var json = handleResponse(e);
return ContentService.createTextOutput(JSON.stringify(json))
.setMimeType(ContentService.MimeType.JSON);
}
处理程序功能示例:
function handleResponse(e) {
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
var param = e.parameter.yourParameter;
if (param) {
arr = arr.filter(function(element){
return element > parseInt(param);
});
if (arr.length > 0) {
return {"result":arr};
} else {
return {"error":"no value was found"};
}
} else {
return {"error":"query parameter not specified"};
}
}
在接收端,您可以根据其包含的属性处理响应:
if ("result" in response) {
//do something
}
if ("error" in response) {
//do something
}