REST API
HOST : alpha-asset.maxverse.io
- passport 알파서버로 토큰인증
Container API
자식 컨테이너 생성
POST /{container}/
Request
Name | Description | Remark | Required |
---|---|---|---|
type | 컨테이너 타입 | string | O |
name | 컨테이너 이름 | string | O |
description | 컨테이너 설명 | string | O |
{
"type": "BasicContainer",
"name": "sub-container",
"description": "sub-container-description"
}
Response
Name | Description | Required |
---|---|---|
uuid | uuid | O |
uri | uri | O |
Response[Success]
{
"uuid": "609ede09-37f2-4bcd-adc6-7dc7095c708a",
"uri": "https://alpha-asset.maxverse.io/container/sub-container/"
}
컨테이너 리소스 조회
GET /{container}/
Response
Name | Description | Required |
---|---|---|
type | 컨테이너 타입 | O |
name | 컨테이너 이름 | O |
contains | 자식 컨테이너 Array | O |
contains.type | 자식 컨테이너 타입 | O |
contains.uri | 자식 컨테이너 URI | O |
resources | 리소스 오브젝트 | O |
resources.assetResources | 에셋 리스트 Json Array | O |
resources.assetResources.type | 에셋 타입 | O |
resources.assetResources.platform | 에셋 플랫폼 | O |
resources.assetResources.description | 에셋 설명 | O |
resources.commonResources | 파일 리소스 Json Array | O |
resources.commonResources.type | 파일 리소스 타입 | O |
resources.commonResources.uri | 파일 리소스 URI | O |
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
Name | Description | Required |
---|---|---|
_id | 컨테이너 id | O |
uuid | 컨테이너 uuid | O |
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
Name | Description | Required |
---|---|---|
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
Name | Description | Remark | Required |
---|---|---|---|
Original_File_Name | 파일명(확장자포함) | string | O |
Upload-Length | 파일 크기 | long | O |
Platform | 플랫폼(ios,android,windows) | string | O |
Description | 컨테이너 설명 | string | O |
Asset_Resource_File_Id | (번들의 경우)에셋 파일 uuid | string |
//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
Name | Description | Required |
---|---|---|
Location | CreationUrl | O |
Response[Success]
//header
{
"Location": "https://alpha-asset.maxverse.io/asset/9390ba8c-c6e4-4eac-9d08-adc98fb07b02"
}
파일 이어서 업로드[TUS Upload]
PATCH /{container}/{uuid}
Request Header
Name | Description | Remark | Required |
---|---|---|---|
Content-Type | 바디 컨텐츠 타입 | string | O |
Upload-Offset | 파일 Offset | long | O |
Content-Length | 업로드 크기 | string | O |
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
Name | Description | Required |
---|---|---|
Upload-Offset | File Offset | O |
Tus-Resumable | Tus Resumable 버전 | O |
Response[Success]
//header
{
"Upload-Offset": "1024",
"Tus-Resumable": "1.0.0"
}
common resource 다운로드 url 요청
GET /{container}/{common_resource_uuid}
Response
Name | Description | Required |
---|---|---|
uri | 리소스 uri | O |
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
Name | Description | Required |
---|---|---|
_id | 리소스 id | O |
uuid | 리소스 uuid | O |
assetResourceFileId | asset resource uuid | |
originalFileName | 파일 이름 | O |
fileExtension | 파일 확장자 | O |
description | 파일 설명 | O |
dataUrl | 파일 uri | O |
platform | 플랫폼 | O |
parents | 부모 컨테이너 경로 | O |
owners | 소유자 | O |
trashed | 삭제여부부 | O |
trashingUserId | 삭제 유저 id | O |
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
Name | Description | Required |
---|---|---|
_id | 리소스 id | O |
uuid | 리소스 uuid | O |
originalFileName | 파일 이름 | O |
description | 파일 설명 | O |
dataUrl | 파일 uri | O |
platform | 플랫폼 | O |
parents | 부모 컨테이너 경로 | O |
owners | 소유자 | O |
metaJson | catalog.json | O |
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": {
...
}
}