在Google Apps腳本中,使用REST API調用腳本中的函數的簡單方法是什麼?我知道REST的動詞(GET,POST,UPDATE,DELETE)需要一些關於如何將功能映射到JavaScript方法的決定,但我正在尋找最通用的方式來說「給我一個REST接口爲此方法「。Google Apps腳本:將方法設置爲公共REST界面的簡單方法
0
A
回答
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。
相關問題
- 1. Google Apps腳本中的POST方法
- 2. 設置公共無效方法的JTextField
- 3. 公共設置方法不會更新
- 4. 爲matplotlib直方圖公開更新方法的簡單方法
- 5. 公共方法
- 6. 在其他腳本中使用ASPX頁面的公共方法
- 7. Google Apps腳本ToggleButton用法
- 8. 方法「moveActiveSheet」在Google Apps腳本(JavaScript)中無法正常工作
- 9. 使用Google Apps腳本獲取Google Spreadsheet內容爲JSON的簡單方法是什麼?
- 10. 簡單的方法在Java腳本
- 11. Postgres腳本更簡單的方法
- 12. Flex的 - 簡單的方法來設置邊界圖像
- 13. 爲ToolStripTextBox設置左側文本邊距的簡單方法
- 14. 關於將檢查所有公共方法的類的方面
- 15. 最簡單的方法來隱藏類的一部分'公共方法/接口
- 16. 將值設置爲wxTextCtrl的簡單方法
- 17. 方法,在Google Apps腳本中用戶登錄的觸發器
- 18. 調試Google Apps腳本Web應用程序的有效方法
- 19. 設置方法的返回值爲公共字符串
- 20. 如何將包含的私有方法公開爲公共類方法?
- 21. 相對於當前腳本導入共享python腳本的最簡單方法
- 22. Ruby:在一組腳本中共享公共變量和方法
- 23. Google Apps腳本批量設置屬性
- 24. 公共靜態方法vs公共方法
- 25. 簡單的Java方法將不會運行。裏面方法
- 26. 使用Javascript或Google腳本將Google日曆設置爲公開
- 27. Google Apps腳本 - 使用.replace方法刪除空格
- 28. 轉換使用Google Apps腳本.toISOString()方法
- 29. 如何在Google Apps腳本中異步運行方法?
- 30. Google Apps腳本找不到方法isRequired(布爾值)