웹훅 튜토리얼
튜토리얼
섹션 제목: “튜토리얼”SpringMVC 개발환경에서 Webhook으로 수신한 POST Request Body를 JSON으로 파싱하는 예시입니다.
① 이벤트 메시지 JSON 처리를 위해서 gson Dependency 정보를 추가하여 Maven 업데이트 합니다.
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3</version></dependency>② 아래의 코드를 참조하여 POST Request Body 처리 기능을 추가합니다. (콜백 URL 주소를 http(s)://웹서버URL/pbconnect 로 가정하여 설정한 샘플코드입니다.)
import java.io.BufferedReader;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import com.google.gson.JsonObject;import com.google.gson.JsonParser;
@Controllerpublic class HomeController {
@ResponseBody @RequestMapping(value = "pbconnect", method = RequestMethod.POST) public String webhook(HttpServletRequest request){
StringBuffer strBuffer = new StringBuffer(); String line = null;
try { BufferedReader reader = request.getReader(); while ((line = reader.readLine()) != null) { strBuffer.append(line); } } catch (Exception e) { System.out.println("Error reading JSON string: " + e.toString());
// 오류정보를 Return 처리. 팝빌 Webhook 실행내역에서 확인가능 return e.toString(); }
// Request Body 출력 System.out.println(strBuffer.toString());
// Request Body JSON 처리. JsonParser parser = new JsonParser(); JsonObject jsonObject = (JsonObject)parser.parse(strBuffer.toString()); System.out.println("eventType : " + jsonObject.get("eventType")); System.out.println("eventDT : " + jsonObject.get("eventDT"));
// Webhook 수신을 성공으로 처리하기 위해 JSON String 구성 return "{'result':'OK'}"; }}