콘텐츠로 이동

프로젝트 API

모든 요청에 edicus-api-key 헤더가 필요합니다. 사용자별 자원은 edicus-uid도 함께 보냅니다.

GET /api/projects/:prjid

개별 프로젝트 정보를 얻습니다. 헤더: edicus-api-key, edicus-uid.

{
"project_id": "-LiBngTbCFYNjcOVcxcY",
"order_id": "1234",
"ctime": "2019-06-25T04:04:51.011Z",
"mtime": "2019-06-25T04:04:51.011Z",
"ps_code": "50x90@NC",
"status": "editing",
"template_uri": "gcs://template/partners/sandbox/...",
"title": "sample test",
"cloned_from": "-KiBngTbFEGNjcOVcxfe"
}
  • order_id는 주문된 경우에만, cloned_from은 복제된 프로젝트에만 존재합니다.
GET /api/projects

생성된 모든 프로젝트 목록을 얻습니다. 헤더: edicus-api-key, edicus-uid.

status 값은 다음과 같습니다.

status 타입 설명
editing 편집 중
ordered 주문됨
GET /api/projects/:prjid/owner

프로젝트 소유자 id를 반환합니다. 헤더: edicus-api-key. 찾지 못하면 ownernull.

{ "owner": "uid-of-customer" }
GET /api/projects/:prjid/preview_urls

프리뷰용 썸네일(jpg) 리스트를 얻습니다. 헤더: edicus-api-key.

{ "urls": ["https://...", "https://..."] }
  • 상품에 따라 url 갯수가 다릅니다. 썸네일 지원 범위(all-page / front-page / none)는 Edicus Manager의 상품별 설정을 따릅니다.
POST /api/projects/preview_urls

여러 project-id의 썸네일을 한 번에 얻습니다. 헤더: edicus-api-key. 최대 25개.

// Request
{ "project-ids": ["ifheoxief", "..."] }
// Response
{ "urls": [
{ "project_id": "ifheoxief", "urls": ["https://...", "https://..."] },
{ "project_id": "gheosifhe", "error": "no preview urls" }
] }

한도를 초과하면 err로 응답합니다.

{ "err": { "code": "project-ids limit excess", "message": "can request up to 25" } }
DELETE /api/projects/:prjid

헤더: edicus-api-key, edicus-uid.

GET /api/projects/:prjid/can_clone

헤더: edicus-api-key, edicus-uid.

{ "can_clone": true }
// 복제 중
{ "can_clone": false, "reason": "clone_in_progress", "acquired_at": 1717225200000 }
// 그 외
{ "can_clone": false, "reason": "no_template_uri" }
POST /api/projects/:prjid/clone

프로젝트를 복제합니다. 포토북처럼 이미지가 많으면 수십 초 이상 걸릴 수 있습니다.

헤더 타입 설명
edicus-api-key * string
edicus-uid * string
edicus-target-uid string (선택) 복제될 대상 user id. 없으면 edicus-uid와 동일 user에 복제
{ "project_id": "-LEnOT7xY0ZJgXAVfc0p" }
  • 복제 진행 중 동일 원본에 대한 재요청은 HTTP 409 clone_in_progress를 반환합니다(info.acquired_at 포함). lock은 복제 완료 시 해제되며, 10분이 지난 stale lock은 다음 요청에서 덮어씁니다.
  • 복제된 프로젝트 title에는 “(복제됨)“이 추가됩니다.
POST /api/projects/:prjid/clone_async

동기 복제와 동일하되, 새 project_id를 즉시 반환하고 서버는 백그라운드에서 복제합니다. 복제 중에는 status가 cloning이며 완료되면 editing으로 바뀝니다. 완료 시 callback_url을 POST로 호출합니다.

// Body (optional)
{ "callback_url": "https://..." }
GET /api/projects/:prjid/data

doc=true일 때만 doc json을 포함합니다. 헤더: edicus-api-key(서버) 또는 edicus-id-token(브라우저), edicus-uid.

GET /api/projects/:prjid/data?doc=[true|false]