You have English selected as language but this page has not been translated yet. Translate the page or view the content in the default space language below.
Display defaultMagicInfo Server에서는 콘텐츠 관리, 스케줄 관리, 장치 관리 등 각 기능을 REST API 호출을 통하여 구현할 수 있습니다.
REST API를 사용하기 위해서는 먼저 인증 절차를 거쳐야 하며, 별도의 swagger 페이지를 통해 각 API를 테스트 하실 수 있습니다.
Authentication
모든 REST API 호출 시 헤더에 api_token을 포함하여야 하며, 그렇지 않은 경우 '401 Unauthorized.' 에러를 받게 됩니다.
발급 받은 토큰은 정해진 일정 시간이 지나면 만료되어 사용이 중지되며, 그 경우 토큰을 새로 발급 받아야 합니다.
api_token은 아래 api 호출을 통해 얻을 수 있습니다.
Service Name | API Call | Call Type | Call Description |
---|---|---|---|
Authentication | /auth | POST | 사용자 아이디와 비밀번호 정보로 토큰을 생성합니다. |
REST API
매직인포 서버 REST API는 여러가지 기능을 제공하며 기능별 구성은 아래와 같습니다.
Category | Controller | Description |
---|---|---|
Authetication | authentication-controller | 인증 관련 |
Content | content-controller | 콘텐츠 관리 |
content-group-controller | 콘텐츠 그룹 관리 | |
Playlist | playlist-controller | 플레이리스트 관리 |
playlist-group-controller | 플레이리스트 그룹 관리 | |
Schedule | content-schedule-controller | 콘텐츠 스케줄 관리 |
content-schedule-group-controller | 콘텐츠 스케줄 그룹 관리 | |
message-schedule-controller | 메시지 스케줄 관리 | |
message-schedule-group-controller | 메시지 스케줄 그룹 관리 | |
Device | device-controller | 장치 관리 |
device-group-controller | 장치 그룹 관리 | |
User | user-controller | 사용자 관리 |
user-group-controller | 사용자 그룹 관리 | |
Etc | environment-controller | 환경 설정 |
Authentication
각 REST API를 호출하기 전, 인증을 위한 토큰을 발급 받아야 합니다. 각 토큰을 관리하는 서비스는 아래와 같습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
authenticationRequest | /auth | POST | 사용자 ID 및 비밀번호를 이용하여 인증을 위한 토큰 값을 가져옵니다. |
authenticationRequest | /auth/refresh | GET | 토큰을 새로 생성하여 만료시간을 연장합니다. 재 로그인 없이 계속해서 REST API를 호출할 수 있습니다. |
Content
업로드, 승인, 삭제, 리스트 관리 등 콘텐츠를 관리할 수 있습니다. 콘텐츠를 관리하는 서비스는 아래와 같습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
listAllContent | /restapi/v1.0/cms/contents | GET | 모든 콘텐츠 목록을 가져옵니다. |
listDashboardContentInfo | /restapi/v1.0/cms/contents/dashboard | GET | 대쉬보드에서 필요한 콘텐츠 관련 정보를 가져옵니다. |
listContent | /restapi/v1.0/cms/contents/filter | POST | 여러 조건으로 필터링된 콘텐츠 리스트를 가져옵니다. |
forceDeleteContent | /restapi/v1.0/cms/contents/force/{contentId} | DELETE | 콘텐츠의 사용여부에 상관없이 콘텐츠를 삭제합니다. |
deleteContent | /restapi/v1.0/cms/contents/{contentId} | DELETE | 삭제 가능한 콘텐츠인지 확인 후 콘텐츠를 삭제합니다. |
getActiveContentInfo | /restapi/v1.0/cms/contents/{contentId} | GET | 활성화된 버전의 콘텐츠 상세 정보를 가져옵니다. |
approveContents | /restapi/v1.0/cms/contents/{contentId}/approval | PUT | 미승인 상태의 콘텐츠를 승인/반려합니다. |
uploadContent | /restapi/v1.0/cms/contents/{groupId} | POST | 새 콘텐츠를 업로드합니다. |
listDefaultGroup | /restapi/v1.0/cms/contents/groups | GET | 콘텐츠 기본 그룹 목록을 가져옵니다. |
getGroup | /restapi/v1.0/cms/contents/groups/{groupId} | GET | {groupId} 그룹의 상세 정보를 가져옵니다. |
listChildGroup | /restapi/v1.0/cms/contents/groups/{groupId}/child | GET | {groupId} 그룹의 하위 그룹 목록을 가져옵니다. |
Playlist
콘텐츠를 이용하여 플레이리스트를 만들고, 수정 및 삭제 등 관리 할 수 있습니다. 플레이리스트를 관리하는 서비스는 아래와 같습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
listAllPlaylist | /restapi/v1.0/cms/playlists | GET | 모든 플레이리스트 목록을 가져옵니다. |
createPlaylist | /restapi/v1.0/cms/playlists | POST | 새 플레이리스트를 생성합니다. |
getDashboardPlaylistInfo | /restapi/v1.0/cms/playlists/dashboard | GET | 대쉬보드에 필요한 플레이리스트 정보를 가져옵니다. |
listPlaylist | /restapi/v1.0/cms/playlists/filter | POST | 여러 조건으로 필터링된 플레이리스트 목록을 가져옵니다. |
deletePlaylist | /restapi/v1.0/cms/playlists/{playlistId} | DELETE | 선택된 플레이리스트를 삭제합니다. |
getActivePlaylistInfo | /restapi/v1.0/cms/playlists/{playlistId} | GET | 활성화된 버전으로 플레이리스트의 상세 정보를 가져옵니다. |
editPlaylist | /restapi/v1.0/cms/playlists/{playlistId} | PUT | 플레이리스트를 수정합니다. |
copyPlaylist | /restapi/v1.0/cms/playlists/{playlistId}/copy | PUT | 플레이리스트를 복사합니다. |
listDefaultGroup | /restapi/v1.0/cms/playlists/groups | GET | 플레이리스트 기본 그룹 목록을 가져옵니다. |
getGroup | /restapi/v1.0/cms/playlists/groups/{groupId} | GET | {groupId} 그룹의 상세 정보를 가져옵니다. |
listChildGroup | /restapi/v1.0/cms/playlists/groups/{groupId}/child | GET | {groupId} 그룹의 하위 그룹 목록을 가져옵니다. |
Schedule
새 콘텐츠/메시지 스케줄을 만들고, 장치에 배포하여 재생 할 수 있습니다. 또한 스케줄을 수정하거나 삭제 하는 등 관리 할 수 있습니다.
스케줄을 관리하는 서비스는 아래와 같습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
listContentScheduleAll | /restapi/v1.0/dms/schedule/contents | GET | 모든 콘텐츠 스케줄 목록을 가져옵니다. |
createContentSchedule | /restapi/v1.0/dms/schedule/contents | POST | 새 콘텐츠 스케줄을 생성합니다. |
listDashboardScheduleInfo | /restapi/v1.0/dms/schedule/contents/dashboard | GET | 대쉬보드에서 필요한 콘텐츠 스케줄 정보를 가져옵니다. |
listContentScheduleByGroup | /restapi/v1.0/dms/schedule/contents/filter | POST | 여러 조건으로 필터링된 콘텐츠 스케줄 목록을 가져옵니다. |
deleteContentSchedule | /restapi/v1.0/dms/schedule/contents/{programId} | DELETE | 콘텐츠 스케줄을 삭제합니다. |
getProgramInfo | /restapi/v1.0/dms/schedule/contents/{programId} | GET | 선택된 스케줄의 상세 정보를 가져옵니다. |
editContentSchedule | /restapi/v1.0/dms/schedule/contents/{programId} | PUT | 콘텐츠 스케줄을 수정합니다. |
copyContentSchedule | /restapi/v1.0/dms/schedule/contents/{programId}/copy | PUT | 콘텐츠 스케줄을 복사합니다. |
deployContentSchedule | /restapi/v1.0/dms/schedule/contents/{programId}/deploy | PUT | 콘텐츠 스케줄을 원하는 장치 그룹에 배포합니다. |
getPublishStatus | /restapi/v1.0/dms/schedule/contents/{programId}/publishStatus | GET | 장치에서 콘텐츠 스케줄을 다운로드 받는 상태를 실시간으로 가져옵니다. |
getRootGroups | /restapi/v1.0/dms/schedule/contents/groups | GET | 콘텐츠 스케줄의 루트 그룹 리스트를 가져옵니다. |
listContentScheduleGroupInfo | /restapi/v1.0/dms/schedule/contents/groups/{groupId} | GET | {groupId} 그룹에 대한 상세 정보를 가져옵니다. |
listAllMessageSchedule | /restapi/v1.0/dms/schedule/messages | GET | 모든 메시지 스케줄 목록을 가져옵니다. |
createMessageSchedule | /restapi/v1.0/dms/schedule/messages | POST | 새 메시지 스케줄을 생성합니다. |
listMessage | /restapi/v1.0/dms/schedule/messages/filter | POST | 여러 조건으로 필터링된 메시지 스케줄 목록을 가져옵니다. |
deleteMessageSchedule | /restapi/v1.0/dms/schedule/messages/{messageId} | DELETE | 선택한 메시지 스케줄을 삭제합니다. 삭제한 메시지 스케줄이 장치에 배포되어있는 경우 자동으로 장치에 트리거링되어 변경 사항이 장치에 반영됩니다. |
getMessageInfo | /restapi/v1.0/dms/schedule/messages/{messageId} | GET | 선택한 메시지 스케줄의 상세 정보를 가져옵니다. |
editMessageSchedule | /restapi/v1.0/dms/schedule/messages/{messageId} | PUT | 선택한 메시지 스케줄을 수정합니다. 수정한 메시지 스케줄이 장치에 배포되어 있는 경우 자동으로 장치에 트리거링되어 변경 사항이 장치에 반영됩니다. |
copyMessageSchedule | /restapi/v1.0/dms/schedule/messages/{messageId}/copy | PUT | 선택한 메시지 스케줄을 복사합니다. 동일한 내용의 메시지 스케줄이 새로 생성됩니다. |
deployMessageSchedule | /restapi/v1.0/dms/schedule/messages/{messageId}/deploy | PUT | 선택한 메시지 스케줄을 장치 그룹에 배포합니다. |
getRootGroups | /restapi/v1.0/dms/schedule/messages/groups | GET | 콘텐츠 스케줄의 루트 그룹 리스트를 가져옵니다. |
listMessageScheduleGroupInfo | /restapi/v1.0/dms/schedule/messages/groups/{groupId} | GET | {groupId} 그룹에 대한 상세 정보를 가져옵니다. |
getChildGroups | /restapi/v1.0/dms/schedule/messages/groups/{groupId}/child | GET | 원하는 그룹의 하위 그룹 목록을 가져옵니다. |
Device
각 장치를 제어하고 관리 할 수있습니다. 장치를 관리하는 서비스는 아래와 같습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
listAllDevice | /restapi/v1.0/rms/devices | GET | 모든 장치 목록을 가져옵니다. |
getDashboardDeviceInfo | /restapi/v1.0/rms/devices/dashboard | GET | 대쉬보드에서 필요한 장치 정보를 가져옵니다. |
filterDeviceList | /restapi/v1.0/rms/devices/filter | POST | 여러 조건으로 필터링 된 리스트를 가져옵니다. |
deleteDevice | /restapi/v1.0/rms/devices/{deviceId} | DELETE | 선택한 장치를 삭제합니다. 장치 삭제 시 리스트에서 장치 |
getDevice | /restapi/v1.0/rms/devices/{deviceId} | GET | 선택한 장치의 상세 정보를 가져옵니다. |
approveDevice | /restapi/v1.0/rms/devices/{deviceId}/approval | PUT | 선택한 장치를 원하는 그룹에 승인합니다. |
getCabinetList | /restapi/v1.0/rms/devices/{deviceId}/cabinet | POST | LED장치에 연결된 캐비닛들의 정보를 가져옵니다. 해당 정보는 장치가 LED인 경우에만 유효합니다. |
updateCabinetInfo | /restapi/v1.0/rms/devices/{deviceId}/cabinet | PUT | LED장치에 연결된 캐비닛의 정보를 수정합니다. |
getDisplayControlInfo | /restapi/v1.0/rms/devices/{deviceId}/display | GET | DB에서 장치의 디스플레이 제어 정보를 가져옵니다. |
updateDisplayInfo | /restapi/v1.0/rms/devices/{deviceId}/display | PUT | 변경된 디스플레이 제어 정보를 장치에 전달합니다. 디스플레이 정보 중 변경된 값만 장치에 프로토콜로 전달됩니다. |
getUpdatedDisplayInfoResult | /restapi/v1.0/rms/devices/{deviceId}/display/{requestId} | GET | 장치로부터 변경된 디스플레이 제어 정보를 받아옵니다. 이 API는 updateDisplayInfo API를 실행한 후에 실행 가능합니다. |
getGeneralInfo | /restapi/v1.0/rms/devices/{deviceId}/general | GET | DB에서 장치의 일반 정보를 가져옵니다. |
updateGeneralInfo | /restapi/v1.0/rms/devices/{deviceId}/general/info | PUT | 변경된 장치 정보를 장치에 전달합니다. 장치 기본 정보 중 변경된 값만 장치에 프로토콜로 전달됩니다. |
getUpdatedGeneralInfoResult | /restapi/v1.0/rms/devices/{deviceId}/general/{requestId} | GET | 장치로부터 변경된 장치 정보를 받아옵니다. 이 API는 updateGeneralInfo API를 실행한 후에 실행 가능합니다. |
moveDevice | /restapi/v1.0/rms/devices/{deviceId}/move | PUT | 장치를 다른 그룹으로 이동합니다. |
startRmServerVnc | /restapi/v1.0/rms/devices/{deviceId}/rmserver/start | GET | 장치에 RM 시작 프로토콜을 전송합니다. RM 시작 프로토콜을 받은 장치는 RM server를 통해 정보를 주기적으로 전송합니다. |
stopRmServerVnc | /restapi/v1.0/rms/devices/{deviceId}/rmserver/stop | GET | 장치에 RM 중지 프로토콜을 전송합니다. 중지 프로토콜을 받은 장치는 해당 기능을 중지합니다. |
getSetupInfo | /restapi/v1.0/rms/devices/{deviceId}/setup | GET | 장치의 설정 정보를 가져옵니다. |
updateSetupInfo | /restapi/v1.0/rms/devices/{deviceId}/setup | PUT | 변경된 장치 설정 정보를 장치에 전달합니다. 설정 정보 중 변경된 값만 장치에 프로토콜로 전달됩니다. |
getUpdatedSetupInfoResult | /restapi/v1.0/rms/devices/{deviceId}/setup/{requestId} | GET | 장치로부터 변경된 장치 설정 정보를 받아옵니다. 이 API는 updateSetupInfo API를 실행한 후에 실행 가능합니다. |
getCurrentStatusDisplay | /restapi/v1.0/rms/devices/{deviceId}/status/display | GET | 장치에 현재 디스플레이 제어 정보 상태를 요청합니다. 이 API를 호출하면 response값으로 requestId를 전달받게 됩니다. |
getCurrentStatusDisplay | /restapi/v1.0/rms/devices/{deviceId}/status/display/{requestId} | GET | 장치에서 전달받은 디스플레이 제어 정보를 가져옵니다. getCurrentStatusDisplay를 호출하여 받은 requestId를 파라미터로 전달해야 합니다. |
getCurrentStatusTime | /restapi/v1.0/rms/devices/{deviceId}/status/time | GET | 장치에 현재 시간 상태를 요청합니다. 이 API를 호출하면 response값으로 requestId를 전달받게 됩니다. |
getCurrentStatusTime | /restapi/v1.0/rms/devices/{deviceId}/status/time/{requestId} | GET | 장치에서 전달받은 시간 정보를 가져옵니다. getCurrentStatusTime를 호출하여 받은 requestId를 파라미터로 전달해야 합니다. |
getTimeInfo | /restapi/v1.0/rms/devices/{deviceId}/time | GET | DB에서 장치 시간 정보를 가져옵니다. |
updateTimeInfo | /restapi/v1.0/rms/devices/{deviceId}/time | PUT | 변경된 시간 정보를 장치에 전달합니다. 시간 정보 중 변경된 값만 장치에 프로토콜로 전달됩니다. |
getUpdatedTimeInfoResult | /restapi/v1.0/rms/devices/{deviceId}/time/{requestId} | GET | 장치로부터 변경된 장치 시간 정보를 받아옵니다. 이 API는 getUpdatedTimeInfoResult API를 실행한 후에 실행 가능합니다. |
listDeviceGroupOrgan | /restapi/v1.0/rms/devices/groups | GET | 소속의 리스트를 가져옵니다. |
listDeviceGroupInfo | /restapi/v1.0/rms/devices/groups/{groupId} | GET | {groupId} 그룹에 대한 상세 정보를 가져옵니다. |
listDeviceGroupChild | /restapi/v1.0/rms/devices/groups/{groupId}/child | GET | {groupId}에 속한 하위 그룹 정보를 가져옵니다. |
User
새 사용자를 추가하고, 사용자의 정보를 관리할 수 있습니다. 사용자를 관리하는 서비스는 아래와 같습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
createUser | /restapi/v1.0/ums/users | POST | 새 사용자를 추가합니다. |
listDashboardUserInfo | /restapi/v1.0/ums/users/dashboard | GET | 대쉬보드에 필요한 사용자의 정보를 가져옵니다. |
updateMyInfo | /restapi/v1.0/ums/users/me | PUT | 사용자의 정보를 수정합니다. |
listUserOrgan | /restapi/v1.0/ums/users/organization | GET | 소속 목록을 가져옵니다. 그룹트리를 구성할 때 사용할 수 있습니다. |
listUserGroupOrgan | /restapi/v1.0/ums/users/groups | GET | 소속 목록을 가져옵니다. |
listUserGroupInfo | /restapi/v1.0/ums/users/groups/{groupId} | GET | {groupId} 그룹에 대한 상세 정보를 가져옵니다. |
listUserGroupChild | /restapi/v1.0/ums/users/groups/{groupId}/child | GET | {groupId} 그룹에 속한 하위 그룹 목록을 가져옵니다. |
Etc
주요 기능 이외에도 태그, 카테고리를 생성, 관리하고 대시보드를 수정하는 등 다양한 기능을 구현할 수 있습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
getCategoryInfo | /restapi/v1.0/ems/category/{categoryId} | GET | 카테고리 목록을 가져옵니다. |
deleteDashboard | /restapi/v1.0/ems/dashboard | DELETE | 특정 대쉬보드 정보를 삭제합니다. |