Page History
MagicInfo Server에서는 콘텐츠 관리, 스케줄 관리, 장치 관리 등 각 기능을 Open API (v2.0) 호출을 통하여 구현할 수 있습니다.
Open API (v2.0)를 사용하기 위해서는 먼저 인증 절차를 거쳐야 하며, 별도의 swagger 페이지를 통해 각 API를 테스트 할 수 있습니다.
Authentication
모든 Open API (v2.0) 호출 시 헤더에 api_token을 포함하여야 하며, 그렇지 않은 경우 '401 Unauthorized.' 에러를 받게 됩니다.
발급 받은 토큰은 정해진 일정 시간이 지나면 만료되어 사용이 중지되며, 그 경우 토큰을 새로 발급 받아야 합니다.
api_token은 아래 api 호출을 통해 발급받을 수 있습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
authenticationRequest | /auth | POST | 사용자 ID 및 비밀번호를 이용하여 인증을 위한 토큰 값을 가져옵니다. |
authenticationRequest | /auth/refresh | GET | 토큰을 새로 생성하여 만료시간을 연장합니다. 재 로그인 없이 계속해서 REST API를 호출할 수 있습니다. |
OPEN API (v2.0)
매직인포 서버 Open API (v2.0) 는 여러가지 기능을 제공하며 기능별 구성은 아래와 같습니다.
Category | Controller | Description |
---|---|---|
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 | 사용자 그룹 관리 | |
Setting | environment-controller | 환경 설정 |
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 | {playlistId} 플레이리스트를 수정합니다. 수정 시 플레이리스트의 버전이 업데이트되며, 해당 플레이리스트를 재생 중인 장치는 자동 트리거링 되어 변경된 내용을 재생합니다. |
copyPlaylist | /restapi/v1.0/cms/playlists/{playlistId}/copy | PUT | {playlistId} 플레이리스트를 복사합니다. 같은 내용의 플레이리스트가 새로 생성됩니다. |
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 | {programId} 콘텐츠 스케줄을 복사합니다. {programId} 와 같은 내용의 콘텐츠 스케줄이 새로 생성됩니다. |
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} 그룹에 속한 하위 그룹 목록을 가져옵니다. |
Setting
주요 기능 이외에도 태그, 카테고리를 생성, 관리하고 대시보드를 수정하는 등 다양한 기능을 구현할 수 있습니다.
Service Name | API call | Call Type | Description |
---|---|---|---|
getCategoryInfo | /restapi/v1.0/ems/category/{categoryId} | GET | 카테고리 목록을 가져옵니다. |
deleteDashboard | /restapi/v1.0/ems/dashboard | DELETE | 특정 대쉬보드 정보를 삭제합니다. |
listDashboardInfo | /restapi/v1.0/ems/dashboard | GET | 사용자가 설정할 대쉬보드에 표시될 내용을 가져옵니다. 대쉬보드에서 사용자는 원하는 정보만 보이도록 설정할 수 있습니다. |
updateDashboardPriority | /restapi/v1.0/ems/dashboard | PUT | 대쉬보드에 표시되는 항목들의 순서를 변경합니다. |
createDashboard | /restapi/v1.0/ems/dashboard/create | GET | 사용하지 않는 대쉬보드를 사용하도록 수정합니다. |
listDashboardLoginInfo | /restapi/v1.0/ems/dashboard/login | GET | 대쉬보드에 표시될 로그인 정보를 가져옵니다. |
listDashboardNoticeInfo | /restapi/v1.0/ems/dashboard/notice | GET | 대쉬보드에 표시될 게시판 정보를 가져옵니다. |
deleteNoticeInfo | /restapi/v1.0/ems/dashboard/notice/edit | DELETE | 게시판에서 원하는 게시물을 삭제합니다. |
listEditNoticeInfo | /restapi/v1.0/ems/dashboard/notice/edit | GET | 선택한 게시물의 상세 정보를 가져옵니다. |
createNoticeInfo | /restapi/v1.0/ems/dashboard/notice/edit | POST | 게시판에 게시될 새로운 게시물을 추가합니다. |
updateNoticeInfo | /restapi/v1.0/ems/dashboard/notice/edit | PUT | 게시판에서 선택된 게시물을 수정합니다. |
listDashboardStorageInfo | /restapi/v1.0/ems/dashboard/storage | GET | 대쉬보드에 표시될 저장소 정보를 가져옵니다. |
listLicense | /restapi/v1.0/ems/license | GET | 서버에 등록된 라이선스의 목록을 가져옵니다. |
getServerSetupInfo | /restapi/v1.0/ems/setup | GET | 서버 설정 정보를 가져옵니다. 서버 설정에는 서버의 여러가지 기능들을 on/off 할 수 있는 기능을 제공합니다. |
getTagListInfo | /restapi/v1.0/ems/tag | POST | 서버에 등록된 태그 목록을 가져옵니다. |
REST API Details
Open API Documentation | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||