Templates 활용 가이드
템플릿을 조회하고 책에 적용하는 방법을 안내합니다.
템플릿이란?
템플릿은 포토북 페이지의 레이아웃을 정의하는 디자인 틀입니다. 텍스트, 사진, 그래픽 요소의 배치와 스타일이 미리 설정되어 있어, 파라미터만 전달하면 완성된 페이지를 만들 수 있습니다.
템플릿 종류
템플릿은 templateKind로 구분되며, 두 가지 종류가 있습니다.
| 종류 | 값 | 용도 | 적용 API |
|---|---|---|---|
| 표지 템플릿 | cover | 책 표지 디자인. 책당 하나만 적용됩니다. | POST /books/{bookUid}/cover |
| 내지 템플릿 | content | 내지 페이지 디자인. 여러 번 적용하여 페이지를 추가합니다. | POST /books/{bookUid}/contents |
표지 템플릿과 내지 템플릿은 서로 다른 API로 적용합니다. 표지에 내지 템플릿을 사용하거나, 내지에 표지 템플릿을 사용할 수 없습니다.
카테고리
템플릿은 용도별 카테고리로 분류됩니다. GET /template-categories로 전체 목록을 조회할 수 있습니다.
| 코드 | key | 한국어 | English |
|---|---|---|---|
| 1 | diary | 일기장 | Diary |
| 2 | notice | 알림장 | Notice |
| 3 | album | 앨범 | Album |
| 4 | yearbook | 졸업앨범 | Yearbook |
| 5 | wedding | 웨딩 | Wedding |
| 6 | baby | 육아 | Baby |
| 7 | travel | 여행 | Travel |
| 8 | etc | 기타 | Etc |
템플릿 조회하기
목록 조회
GET /templates로 사용 가능한 템플릿을 조회합니다. 공용(public) 템플릿과 본인이 생성한 템플릿이 함께 조회됩니다.
| Query Parameter | 설명 |
|---|---|
bookSpecUid | 상품 스펙 UID로 필터링 (예: SQUAREBOOK_HC) |
category | 카테고리로 필터링 (예: album, diary) |
templateKind | 종류로 필터링 (cover 또는 content) |
limit, offset | 페이지네이션 (기본 limit: 50) |
bash
# SQUAREBOOK_HC용 내지 템플릿 조회
curl 'https://api.sweetbook.com/v1/templates?bookSpecUid=SQUAREBOOK_HC&templateKind=content' \
-H 'Authorization: Bearer YOUR_API_KEY'json
{
"success": true,
"message": "Success",
"data": {
"templates": [
{
"templateUid": "8hKvbcNJdSgj",
"templateName": "알림장A_내지",
"templateKind": "content",
"category": "diary",
"bookSpecUid": "SQUAREBOOK_HC",
"isPublic": true,
"status": "active",
"thumbnails": { "layout": "https://..." },
"createdAt": "2026-01-15T09:00:00Z",
"updatedAt": "2026-01-20T14:30:00Z"
}
],
"pagination": { "total": 45, "limit": 50, "offset": 0, "hasNext": false }
}
}상세 조회
GET /templates/{templateUid}로 특정 템플릿의 상세 정보를 확인할 수 있습니다. 상세 응답에는 파라미터 정의, 레이아웃, 레이아웃 규칙, 베이스 레이어 등이 포함됩니다.
bash
curl 'https://api.sweetbook.com/v1/templates/8hKvbcNJdSgj' \
-H 'Authorization: Bearer YOUR_API_KEY'| 상세 응답 필드 | 설명 |
|---|---|
parameters | 파라미터 정의 (텍스트/이미지/갤러리 바인딩 정보) |
layout | 레이아웃 정의 (요소 배치, 크기) |
layoutRules | 레이아웃 규칙 (여백, 흐름, 컬럼 등) |
baseLayer | 베이스 레이어 (홀수/짝수 페이지 배경 요소) |
thumbnails | 썸네일 URL (layout, baseLayerOdd, baseLayerEven) |
템플릿 선택 기준
템플릿을 선택할 때 다음 사항을 확인하세요.
1. bookSpecUid 일치
템플릿의 bookSpecUid가 생성한 책의 bookSpecUid와 일치해야 합니다. 레이아웃 크기가 다르면 적용할 수 없습니다.
2. templateKind 확인
표지에는 cover 템플릿, 내지에는 content 템플릿을 사용해야 합니다.
3. 파라미터 확인
상세 조회로 parameters를 확인하여 어떤 값(텍스트, 사진 등)을 전달해야 하는지 파악하세요.
파라미터 바인딩
템플릿의 parameters에 정의된 바인딩 유형에 따라 값을 전달합니다.
| 바인딩 유형 | 전달 값 | 예시 |
|---|---|---|
text | 텍스트 문자열 | "bookTitle": "우리 가족 앨범" |
file | 이미지 URL 또는 업로드 파일 | "lineBg": "https://..." |
rowGallery | 사진 파일명 배열 | "photos": ["photo1.jpg", "photo2.jpg"] |
갤러리 바인딩에 사용할 사진은 먼저
POST /books/{bookUid}/photos로 업로드한 후, 반환된 fileName을 사용합니다.책에 템플릿 적용하기
책 생성부터 최종화까지의 전체 흐름에서 템플릿이 사용되는 과정입니다.
text
1. POST /books 책 생성 (bookSpecUid 지정)
2. POST /books/{bookUid}/photos 사진 업로드 (필요 시)
3. POST /books/{bookUid}/cover 표지 적용 (cover 템플릿 + 파라미터)
4. POST /books/{bookUid}/contents 내지 추가 (content 템플릿 + 파라미터) ← 반복
5. POST /books/{bookUid}/finalization 최종화표지 적용 예시
bash
curl -X POST 'https://api.sweetbook.com/v1/books/{bookUid}/cover' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"templateUid": "COVER_TEMPLATE_UID",
"parameters": {
"bookTitle": "우리 가족 앨범",
"year": "2026"
}
}'내지 추가 예시
bash
curl -X POST 'https://api.sweetbook.com/v1/books/{bookUid}/contents' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"templateUid": "8hKvbcNJdSgj",
"parameters": {
"date": "2026-03-01",
"dayOfWeek": "월요일",
"teacherComment": "오늘 하루도 잘 보냈습니다.",
"photos": ["photo1.jpg", "photo2.jpg"]
}
}'내지는
POST /books/{bookUid}/contents를 여러 번 호출하여 페이지를 계속 추가할 수 있습니다. 각 호출마다 다른 템플릿을 사용할 수도 있습니다.관련 문서
- Books API — 책 생성, 표지/내지 추가, 최종화
- BookSpecs 가이드 — 상품 스펙 선택
- Template Engine — 템플릿 엔진 내부 동작
- Dynamic Layout — 동적 레이아웃 배치
- Gallery Templates — 갤러리 레이아웃