개요
본 문서는 (주)유라클에서 제공하는 “message.AI”의 연동 API 정의서를 설명하고 있다. 본 문서는 성능 개선, 기능 추가 등의 사항으로 내용이 변경될 수 있다.
목적
본 문서는 UMS 서비스의 연동을 위한 제반 사항을 기술한다.
호출 방법
Receiver Server 에 HTTP (POST) 방식으로 연동 API URL 을 호출 하면 JSON Format으로 결과를 반환 합니다.
예) http://[Receiver IP]:[Receiver Port]/[API PATH]
API키 생성 방법
API 호출방식을 사용하기 위해서는 API키를 발급 받아야 한다.
Step1. 클라우드 서비스(https://cloud.morpheus.kr)에 회원가입을 합니다.
Step2. 로그인 하신 후 개발자 콘솔로 이동합니다
Step3. 프로젝트관리 메뉴로 이동하여 프로젝트를 추가 생성한다.
Step4. 생성된 프로텍트관리에 API Key관리에서 API키를 생성한다.
참조 : 사용자 가이드에서 확인 하기
실패 처리 방법
① 인증키 시간만료 (인증키 요청 API 호출)
HTTP Error code = HTTP/1.1 200 OK
JSON Data parsing
HEADER - RESULT_CODE = 0000
BODY ? AUTHKEY 값 저장 및 이후 서버로 호출 시 항상 파라미터로 사용
전문 구성
UMS API 전문은 공통 전문 + 채널 전문으로 구성된다
예1) PUSH: 공통 전문 + PUSH 전문 예2) SMS: 공통 전문 + SMS 전문 예3) PUSH > SMS 전환 발송: 공통 전문 + PUSH 전문 + SMS 전문 예4) PUSH > RCS > SMS 전환 발송 : 공통 전문 + PUSH 전문 + RCS 전문 + SMS 전문
필수 라이브러리
<!-- MAVEN 필수 라이브러리 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.5</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.9</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.5</version> </dependency>
샘플
UMS 발송예제
package com.uracle.extention.test; import com.google.gson.Gson; import kr.uracle.ums.codec.redis.config.ErrorManager; import kr.uracle.ums.core.controller.send.PotalSendApiCtrl; import kr.uracle.ums.core.service.UmsSendCommonService; import kr.uracle.ums.core.vo.ReqUmsSendVo; import kr.uracle.ums.extention.vo.ReqExampleVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Locale; import java.util.Map; import java.util.Set; @RequestMapping(value="/api/example") @Controller public class ExampleCtrl { @Autowired(required = true) private UmsSendCommonService umsSendCommonService; @Autowired(required = true) private PotalSendApiCtrl potalSendApiCtrl; @RequestMapping(value = {"/potalSendApi.ums"}, produces = "application/json; charset=utf8") public @ResponseBody String umsSend(Locale locale, HttpServletRequest request, HttpServletResponse response, @ModelAttribute ReqExampleVo reqExampleVo) { String responseBody = ""; try { // TODO : 해당 부분에 reqExampleVo 정보를 이용하여 ReqUmsSendVo에 맵핑시키는 비즈로직 수행 // STEP 1 : ReqUmsSendVo에 맵핑시켜야 함. HTTP API 문서 참조 ReqUmsSendVo reqUmsSendVo = new ReqUmsSendVo(); // STEP 2 : UMS 발송요청 메서드 호출 responseBody = potalSendApiCtrl.umsSend(locale, request, response, reqUmsSendVo); } catch (Exception e) { e.printStackTrace(); return umsSendCommonService.responseJsonString(ErrorManager.ERR_500, ErrorManager.getInstance().getMsg(ErrorManager.ERR_500)+", "+e.getMessage(), request.getRequestURI(), reqExampleVo); } return responseBody; } }