본문으로 건너뛰기

REST API

HOST : alpha-asset.maxverse.io
  • passport 알파서버로 토큰인증

Container API

자식 컨테이너 생성

POST /{container}/

Request

NameDescriptionRemarkRequired
type컨테이너 타입stringO
name컨테이너 이름stringO
description컨테이너 설명stringO
{
"type": "BasicContainer",
"name": "sub-container",
"description": "sub-container-description"
}

Response

NameDescriptionRequired
uuiduuidO
uriuriO

Response[Success]

{
"uuid": "609ede09-37f2-4bcd-adc6-7dc7095c708a",
"uri": "https://alpha-asset.maxverse.io/container/sub-container/"
}

컨테이너 리소스 조회

GET /{container}/

Response

NameDescriptionRequired
type컨테이너 타입O
name컨테이너 이름O
contains자식 컨테이너 ArrayO
contains.type자식 컨테이너 타입O
contains.uri자식 컨테이너 URIO
resources리소스 오브젝트O
resources.assetResources에셋 리스트 Json ArrayO
resources.assetResources.type에셋 타입O
resources.assetResources.platform에셋 플랫폼O
resources.assetResources.description에셋 설명O
resources.commonResources파일 리소스 Json ArrayO
resources.commonResources.type파일 리소스 타입O
resources.commonResources.uri파일 리소스 URIO

Response[Success]

{
"type": "BasicContainer",
"name": "container",
"contains": [
{
"type": "BasicContainer",
"uri": "https://alpha-asset.maxverse.io/container/sub-container/"
}
],
"resources": {
"assetResources": [
{
"type": "Asset",
"platform": "windows",
"name": "catalog.json",
"uri": "https://alpha-asset.maxverse.io/container/508f43b6-6f12-42b2-a523-7030cb1656ce?type=asset"
}
],
"commonResources": [
{
"type": "Resource",
"name": "image.jpg",
"uri": "https://alpha-asset.maxverse.io/container/a5eccee3-e200-4777-9acd-1cf8319e7274"
}
]
}
}

자식 컨테이너 메타 데이터 조회

GET /{container}/?type=meta

Response

NameDescriptionRequired
_id컨테이너 idO
uuid컨테이너 uuidO
type컨테이너 타입O
name컨테이너 이름O
parents부모 컨테이너 경로O
description컨테이너 설명O
owners소유자O

Response[Success]

{
"_id": "64479e975005c9084b0c5db2",
"uuid": "42190441-fefe-4cce-b7f1-a71d09fc7d05",
"type": "BasicContainer",
"name": "container",
"parents": "/",
"description": "container description",
"owners": ["client-id"]
}

컨테이너 수정

PATCH /{container}/

Request

NameDescriptionRequired
description컨테이너 설명O
{
"description": "sub-container-description"
}

Resource API

Used Tus Upload Protocol https://tus.io/protocols/resumable-upload.html

파일 데이터 생성[TUS Upload]

POST /{container}

Request Header

NameDescriptionRemarkRequired
Original_File_Name파일명(확장자포함)stringO
Upload-Length파일 크기longO
Platform플랫폼(ios,android,windows)stringO
Description컨테이너 설명stringO
Asset_Resource_File_Id(번들의 경우)에셋 파일 uuidstring
//Header
{
"Authorization": "Bearer token.passport",
"Original_File_Name": "catalog.json",
"Upload-Length": 1234,
"Platform": "windows",
"description": "asset description",
"Asset_Resource_File_Id": "asset-uuid"
}

Response Header

NameDescriptionRequired
LocationCreationUrlO

Response[Success]

//header
{
"Location": "https://alpha-asset.maxverse.io/asset/9390ba8c-c6e4-4eac-9d08-adc98fb07b02"
}

파일 이어서 업로드[TUS Upload]

PATCH /{container}/{uuid}

Request Header

NameDescriptionRemarkRequired
Content-Type바디 컨텐츠 타입stringO
Upload-Offset파일 OffsetlongO
Content-Length업로드 크기stringO
Upload-Checksum체크섬 알고리즘string
//Header
{
"Authorization": "Bearer token.passport",
"Content-Type": "application/offset+octet-stream",
"Content-Length": 1024,
"Upload-Offset": 0,
"Upload-Checksum": "sha1 Kq5sNclPz7QV2+lfQIuc6R7oRu0="
}

Response Header

NameDescriptionRequired
Upload-OffsetFile OffsetO
Tus-ResumableTus Resumable 버전O

Response[Success]

//header
{
"Upload-Offset": "1024",
"Tus-Resumable": "1.0.0"
}

common resource 다운로드 url 요청

GET /{container}/{common_resource_uuid}

Response

NameDescriptionRequired
uri리소스 uriO
type리소스 타입O

Response[Success]

{
"uri": "https://d34gpj6pbb26l6.cloudfront.net/resources/asset/24857c56-26de-4d1e-b584-4e7cd6f5bf3f/windows/test.jpg",
"type": "Resource"
}

common resource 의 메타 데이터 상세정보 요청

GET /{container}/{common_resource_uuid}?type=meta

Response

NameDescriptionRequired
_id리소스 idO
uuid리소스 uuidO
assetResourceFileIdasset resource uuid
originalFileName파일 이름O
fileExtension파일 확장자O
description파일 설명O
dataUrl파일 uriO
platform플랫폼O
parents부모 컨테이너 경로O
owners소유자O
trashed삭제여부부O
trashingUserId삭제 유저 idO
trashedAt삭제 시간O
readAt읽기 시간O
updatedAt수정 시간O
createdAt생성 시간O

Response[Success]

{
"_id": "641a894a89475b608e10846a",
"uuid": "dc842019-4576-4242-b30e-17ae739bafaf",
"assetResourceFileId": "040f352d-b004-4d68-85cb-eefd115de260",
"originalFileName": "b38652271066d76ebde3e07f089c5921_unitybuiltinshaders_21a85a2cb42c92bec839a1f75dd61047.bundle",
"fileExtension": "bundle",
"description": "bundle test",
"dataUrl": "https://d34gpj6pbb26l6.cloudfront.net/resources/asset/24857c56-26de-4d1e-b584-4e7cd6f5bf3f/windows/test.jpg",
"platform": "IOS",
"parents": "/asset/",
"owners": ["24857c56-26de-4d1e-b584-4e7cd6f5bf3f"],
"trashed": false,
"trashingUserId": null,
"trashedAt": null,
"readAt": null,
"updatedAt": "2023-03-22T04:51:22.422772",
"createdAt": "2023-03-22T04:51:22.422738"
}

bundle 파일의 catalog.json 다운로드 url 요청

GET /{container}/{common_uuid}?type=catalog

Response

NameDescriptionRequired
_id리소스 idO
uuid리소스 uuidO
originalFileName파일 이름O
description파일 설명O
dataUrl파일 uriO
platform플랫폼O
parents부모 컨테이너 경로O
owners소유자O
metaJsoncatalog.jsonO

Response[Success]

{
"_id": "641a892289475b608e108469",
"uuid": "040f352d-b004-4d68-85cb-eefd115de260",
"originalFileName": "catalog.json",
"parents": "/asset/",
"platform": "IOS",
"dataUrl": "https://alpha-asset.maxst.com.s3.ap-northeast-2.amazonaws.com/resources/asset/test-client-id-1234/IOS/catalog.json",
"description": "bundle test",
"owners": [
"24857c56-26de-4d1e-b584-4e7cd6f5bf3f"
],
"metaJson": {
...
}
}