profound-logoProfound CMS
โŒ˜K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with Components๊ตฌ์„ฑ ์š”์†Œ ์œ ํ˜•Setup server sent events (SSE) content refetch์–ด๋“œ๋ฏผ ํŒจ๋„ ํ”„๋ก์‹œ ์„ค์ •ํ…œํ”Œ๋ฆฟ ๋นŒ๋”์—์„œ ์Šคํฌ๋ฆฝํŒ…Project Scaffolding๋ฏธ๋””์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Headless

Quick startjson๊ณผ Claude ์ฝ”๋“œ์ปดํฌ๋„ŒํŠธ Zod ๊ฐ€์ ธ์˜ค๊ธฐ

REST API

REST API ๊ฐœ์š”get์›น์‚ฌ์ดํŠธ๋ฅผ CMS API์— ์—ฐ๊ฒฐํ•˜๊ธฐget๊ฒฝ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐget๋ผ์šฐํŠธ ๊ฐ€์ ธ์˜ค๊ธฐget๋ธ”๋ก ๊ฐ€์ ธ์˜ค๊ธฐgetCEL ์บ์‹œ๊ฐ€ ํฌํ•จ๋œ ๋ธ”๋ก ๊ฐ€์ ธ์˜ค๊ธฐget๋ธ”๋ก ์ƒ์„ฑ ๊ฐ€์ ธ์˜ค๊ธฐget์ปดํฌ๋„ŒํŠธ ๊ฐ€์ ธ์˜ค๊ธฐgetGET /components/{name}get๋ฐ์ดํ„ฐ์…‹ ์Šคํ‚ค๋งˆ ์ด๋ฆ„ ๊ฐ€์ ธ์˜ค๊ธฐgetGET /content-changes (SSE)patchPATCH /dataset/{schema_name}post๊ฒŒ์‹œ๋ฌผ ๋ฒˆ์—ญpatch๋ฒˆ์—ญ ํŒจ์น˜get์‚ฌ์šฉ๋Ÿ‰ ๊ฐ€์ ธ์˜ค๊ธฐpostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

CEL ์บ์‹œ๊ฐ€ ํฌํ•จ๋œ ๋ธ”๋ก ๊ฐ€์ ธ์˜ค๊ธฐ

๋ธ”๋ก์„ ๊ฐ€์ ธ์˜ค๊ณ  ํ‰๊ฐ€๋œ ํ•„๋“œ ์ˆ˜์ค€ CEL ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฒŒ์‹œ๋œ ์ฝ˜ํ…์ธ ์— ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

GET /blocks์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๊ฐ ๋ธ”๋ก์— ๋“ฑ๋ก๋œ ํ•„๋“œ ์ˆ˜์ค€ CEL ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€๋กœ ํ‰๊ฐ€ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ ๋ธ”๋ก์˜ published_content์— ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก์— ๊ณ„์‚ฐ๋œ ํ•„๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ธ์ฆ: API ํ‚ค (x-api-key ํ—ค๋” ๋˜๋Š” api_key ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜).

์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜

๋งค๊ฐœ๋ณ€์ˆ˜์œ ํ˜•ํ•„์ˆ˜์„ค๋ช…
websiteIduuid์•„๋‹ˆ์š”๋Œ€์ƒ ์›น์‚ฌ์ดํŠธ; ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด Host ํ—ค๋”/๊ตฌ์„ฑ์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.
blockIdsstring์•„๋‹ˆ์š”์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ธ”๋ก UUID. ์ฐธ๊ณ : ids๊ฐ€ ์•„๋‹ˆ๋ผ blockIds์ž…๋‹ˆ๋‹ค.
routePathstring์•„๋‹ˆ์š”CEL meta ์ปจํ…์ŠคํŠธ์— ์‚ฌ์šฉํ•  ๋ผ์šฐํŠธ ๊ฒฝ๋กœ.
paramsstring์•„๋‹ˆ์š”๋ผ์šฐํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ URL ์ธ์ฝ”๋”ฉ๋œ JSON ๊ฐ์ฒด(์˜ˆ: {"code":"JFK"}).
localestring์•„๋‹ˆ์š”meta.locale ๋ฐ ๋ฒˆ์—ญ ์กฐํšŒ์— ์‚ฌ์šฉํ•  ๋กœ์ผ€์ผ. ๊ธฐ๋ณธ๊ฐ’์€ en์ž…๋‹ˆ๋‹ค.
api_keystring์•„๋‹ˆ์š”x-api-key ํ—ค๋”์˜ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค.

์‘๋‹ต

{
  "blocks": [
    {
      "id": "...",
      "schema_name": "hero-block",
      "published_content": {},
      "cached_fields": ["hero.title", "hero.subtitle"]
    }
  ]
}

๊ฐ ์š”์†Œ๋Š”(๋ชจ๋‘ GET /blocks์™€ ๋™์ผํ•œ ํ•„๋“œ๋ฅผ ๊ฐ–๋Š”) ๋ธ”๋ก์ด๋ฉฐ, CEL๋กœ ์ฑ„์›Œ์ง„ ๋„ํŠธ ๊ฒฝ๋กœ๋ฅผ ๋‚˜์—ดํ•˜๋Š” ์„ ํƒ์  cached_fields ๋ฐฐ์—ด์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์•„๋ฌด ๊ฒƒ๋„ ๊ณ„์‚ฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ cached_fields๋Š” ์ƒ๋žต๋ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก์˜ published_content๊ฐ€ null์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋งŒ CEL์ด ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

curl '{CMS_API_URL}/blocks/with-cel-cache?websiteId=<uuid>&blockIds=<id1>,<id2>&locale=en' \
  -H 'x-api-key: <key>'

์˜ค๋ฅ˜

  • 400 โ€” blockIds์— ์ž˜๋ชป๋œ UUID๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์›น์‚ฌ์ดํŠธ๋ฅผ ํ•ด์„ํ•  ์ˆ˜ ์—†์Œ
  • 401 โ€” ์ž˜๋ชป๋œ API ํ‚ค
  • 500 โ€” CEL ์—”์ง„ ์˜ค๋ฅ˜
Continue Reading
Previousโ€น๋ธ”๋ก ๊ฐ€์ ธ์˜ค๊ธฐNext๋ธ”๋ก ์ƒ์„ฑ ๊ฐ€์ ธ์˜ค๊ธฐโ€บ