- 구글 앱 스크립트 doGet과 doPost 사용 방법
GAS에서 doGet과 doPost는 웹 애플리케이션을 만들 때 사용되는 기본적인 HTTP 요청 핸들러이다.
이 두 함수는 클라이언트에서 웹 애플리케이션으로 HTTP GET 및 POST 요청을 보낼 때 사용된다.
1. doGet
doGet 함수는 HTTP GET 요청을 처리한다. 클라이언트가 웹 애플리케이션의 URL에 쿼리 매개변수를 포함하여 GET 요청을 보내면, 앱스크립트는 doGet 함수를 호출하고 클라이언트에게 응답을 반환한다.
이 함수는 주로 웹 애플리케이션의 초기 화면을 제공하거나, 단순한 데이터 조회 등의 작업에 사용된다.
- Google App Script
// doGet 함수는 HTTP GET 요청을 처리합니다.
function doGet(e) {
// 클라이언트에게 반환할 텍스트 작성
var responseText = 'Hello World!';
return ContentService.createTextOutput(responseText);
}
- JavaScript (외부)
// doGet을 호출하는 함수
function callDoGet() {
// 구글 앱 스크립트에서 배포한 웹 애플리케이션의 URL 설정
var url = "https://script.google.com/macros/s/${your-script-id}/exec";
// fetch를 사용하여 GET 요청 보내기
fetch(url)
.then(response => response.text())
.then(data => {
console.log("Response from server: ", data); // "Response from server: Hello World!"
})
.catch(error => {
console.error("Error: ", error);
});
}
2. doPost
doPost 함수는 HTTP POST 요청을 처리한다. 클라이언트가 웹 애플리케이션의 URL에 POST 요청을 보내면, 앱스크립트는 doPost 함수를 호출하고 클라이언트에게 응답을 반환한다.
이 함수는 주로 웹 애플리케이션에서 양식 데이터를 전송하거나, 데이터를 수정 및 처리하는 작업에 사용된다.
- Google App Script
// doPost 함수는 HTTP POST 요청을 처리합니다.
function doPost(e) {
// POST로 전송된 데이터를 가져옵니다.
var formData = e.parameter;
// 데이터 처리 로직 작성
var processedData = processData(formData);
// 클라이언트에게 반환할 JSON 형식의 응답
var jsonResponse = {
status: 'success',
data: processedData
};
return ContentService.createTextOutput(JSON.stringify(jsonResponse)).setMimeType(ContentService.MimeType.JSON);
}
// 데이터 처리 함수 예시
function processData(formData) {
// 여기에 데이터 처리 로직을 작성합니다.
// 예: 폼 데이터를 데이터베이스에 저장하거나 다른 서비스에 전송하는 등의 작업
return formData;
}
- JavaScript (외부)
// doPost을 호출하는 함수
function callDoPost() {
// 구글 앱 스크립트에서 배포한 웹 애플리케이션의 URL 설정
var url = "https://script.google.com/macros/s/${your-script-id}/exec";
// POST 요청에 보낼 데이터 설정
var formData = {
key1: 'value1',
key2: 'value2'
};
// fetch를 사용하여 POST 요청 보내기
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
})
.then(response => response.json())
.then(data => {
console.log("Response from server:", data);
})
.catch(error => {
console.error("Error:", error);
});
}