2013-06-25 83 views

回答

2

聽起來像是你想ContentService。你爲你想要的動詞編寫一個函數(GET爲doGet,POST爲doPost,其他不支持),然後你可以通過將其名稱作爲參數委託給另一個函數。

1

最簡單的方法是編寫一個接受參數的Web應用程序,將它們傳遞給函數,然後返回函數的輸出。 (如科裏說......但我已經寫了這一切的代碼,所以在這裏你去!)

這正是如此,一個簡單的計算器功能:

/** 
* GET requests should be for read-only queries; they should not change the state of the server and its data. 
*/ 
function doGet(e) { 
    var output = ''; 
    if (Object.keys(e.parameters).length < 3) { 
    output += doMath('help','0','0'); 
    } 
    else { 
    output += JSON.stringify(e.parameters) +'\n'; // Echo parameters - debug only 
    output += doMath(e.parameters.operation[0], e.parameters.val1[0], e.parameters.val2[0]); 
    } 

    return ContentService 
      .createTextOutput(output) 
      .setMimeType(ContentService.MimeType.JSON); 
} 

如果你想成爲一個完整的極簡主義,這將工作,沒有錯誤處理:

function doGet(e) { 
    return ContentService 
      .createTextOutput(doMath(e.parameters.operation[0], e.parameters.val1[0], e.parameters.val2[0])) 
      .setMimeType(ContentService.MimeType.JSON); 
} 

爲了有效在這個模型中,你的目標函數需要處理自己的錯誤處理和返回的東西在所有情況下是有用的。下面是一個簡單的計算器:

function doMath(operation, val1, val2) { 
    // Do error checking for parameters 
    var errors = ''; 
    for (var arg in arguments) { 
    if (arguments[arg] == 'undefined') errors += "Missing " + arg + '\n'; 
    if (arg.indexOf('val') !== -1) { 
     if (isNaN(arguments[arg])) errors += "Not a number: " + arg + '\n'; 
    } 
    } 
    // If we found errors, just report them 
    if (errors != '') return errors; 

    // Body of function 
    var result; 
    var num1 = parseFloat(val1); 
    var num2 = parseFloat(val2); 
    switch (operation) { 
    case 'add': 
     result = num1 + num2; 
     break; 
    case 'sub': 
     result = num1 - num2; 
     break; 
    case 'mult': 
     result = num1 * num2; 
     break; 
    case 'div': 
     if (num2 !== 0.0) { 
     result = num1/num2; 
     } 
     else { 
     result = 'Divide by zero'; 
     } 
     break; 
    case 'help': 
     result = "Example:\n\n" 
      + " "+ScriptApp.getService().getUrl() 
      + "?operation=add&val1=2&val2=2\n\n" 
      + "Returns '4'"; 
     break; 
    default: 
     result = 'Unsupported operation'; 
     break; 
    } 
    return result; 
} 

在部署您的Web應用程序,記得將其提供給「每個人,甚至是匿名」,根據this answer

相關問題