개요

본 문서는 (주)유라클에서 제공하는 “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;
    }

}