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

REST API ๊ฐœ์š”

CMS REST API์˜ ๊ธฐ๋ณธ URL, ์ธ์ฆ ๋ฐฉ์‹, ํ…Œ๋„ŒํŠธ ๊ฒฐ์ •, ์˜ค๋ฅ˜ ๋ชจ๋ธ์— ๊ด€ํ•œ ์ •๋ณด์ž…๋‹ˆ๋‹ค.

Profound CMS REST API๋Š” Rust translation_manager ์„œ๋น„์Šค์—์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” ๋ Œ๋”๋Ÿฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ—ค๋“œ๋ฆฌ์Šค ์ฝ๊ธฐ/์ŠคํŠธ๋ฆผ ์—”๋“œํฌ์ธํŠธ์™€, ์ฝ˜ํ…์ธ ยท๋ฒˆ์—ญยทCSV ๊ฐ€์ ธ์˜ค๊ธฐ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์˜ˆ์‹œ๋Š” {CMS_API_URL}์„ CMS API ํ˜ธ์ŠคํŠธ์˜ ๊ธฐ๋ณธ URL๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: https://cms.dev.tryprofound.com). ์ „์—ญ ๊ฒฝ๋กœ ์ ‘๋‘์‚ฌ๋Š” ์—†์Šต๋‹ˆ๋‹ค โ€” ๋ผ์šฐํŠธ๋Š” ๋ฃจํŠธ์— ๋งˆ์šดํŠธ๋˜๋ฉฐ, ์˜ˆ: {CMS_API_URL}/routes.

์ธ์ฆ

API๋Š” ์—”๋“œํฌ์ธํŠธ์— ๋”ฐ๋ผ ๋‘ ๊ฐ€์ง€ ๋ณ„๋„์˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

API ํ‚ค(ํ—ค๋“œ๋ฆฌ์Šค ์ฝ๊ธฐ + ๋ณ€ํ˜• ์—…์„œํŠธ)

ํ‚ค๋Š” x-api-key ํ—ค๋” ๋˜๋Š” api_key ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค:

curl '{CMS_API_URL}/dataset/post?websiteId=<uuid>' \
  -H 'x-api-key: <your-api-key>'

ํ‚ค๋Š” WorkOS์— ๋Œ€ํ•ด ๊ฒ€์ฆ๋˜๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ž ์‹œ ์บ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์—”๋“œํฌ์ธํŠธ์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„๊ฐ€ require_schema_api_key = true๋กœ ์„ค์ •๋˜์—ˆ์„ ๋•Œ๋งŒ API ํ‚ค๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ต๋ช… ์ฝ๊ธฐ๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ณ€ํ˜• ์—…์„œํŠธ(PATCH /dataset/{schema_name})์—๋Š” content_write ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์œ ํšจํ•œ ํ‚ค๊ฐ€ ํ•ญ์ƒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

API ํ‚ค ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ: /routes, /route, /blocks*, /components*, /dataset/*, /schemas/*, /content-changes.

๋ฒ ์–ด๋Ÿฌ JWT(WorkOS)

๊ด€๋ฆฌ ์—”๋“œํฌ์ธํŠธ์—๋Š” WorkOS ์‚ฌ์šฉ์ž JWT๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

curl '{CMS_API_URL}/usage?orgId=<uuid>' \
  -H 'Authorization: Bearer <workos-jwt>'

๋ฒ ์–ด๋Ÿฌ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ: /translation, /translations, /usage, /csv.

์›น์‚ฌ์ดํŠธ(ํ…Œ๋„ŒํŠธ) ๊ฒฐ์ •

API ํ‚ค ์—”๋“œํฌ์ธํŠธ๋Š” ๋Œ€์ƒ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋‹ค์Œ ์ˆœ์„œ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค:

  1. ?websiteId=<uuid> ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜
  2. ๊ตฌ์„ฑ๋œ ์›น์‚ฌ์ดํŠธ ๋„๋ฉ”์ธ๊ณผ ์ผ์น˜ํ•˜๋Š” Host ํ—ค๋”
  3. CMS_WEBSITE_ID ํด๋ฐฑ(๋‹จ์ผ ํ…Œ๋„ŒํŠธ / ๋กœ์ปฌ ๊ฐœ๋ฐœ)

์ด ์ค‘ ์–ด๋А ๊ฒƒ๋„ ์œ ํšจํ•œ UUID๋กœ ํ•ด์„๋˜์ง€ ์•Š์œผ๋ฉด ์—”๋“œํฌ์ธํŠธ๋Š” 400์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ๋ชจ๋ธ

์ƒํƒœ์˜๋ฏธ
400์ž˜๋ชป๋œ ์š”์ฒญ โ€” ๋ˆ„๋ฝ/์ž˜๋ชป๋œ websiteId, ์ž˜๋ชป๋œ UUID, ๋˜๋Š” ๊ฒ€์ฆ ์‹คํŒจ
401์ž๊ฒฉ ์ฆ๋ช…์ด ์—†๊ฑฐ๋‚˜ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค
403์ธ์ฆ๋˜์—ˆ์ง€๋งŒ ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค
404๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
500๋‚ด๋ถ€ / ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜

์ƒํƒœ ์ ๊ฒ€

GET {CMS_API_URL}/health๋Š” { "status": "ok" }๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์ธ์ฆ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค โ€” ํ™œ์„ฑ ์ƒํƒœ ์ ๊ฒ€์— ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

Continue Reading
Next์›น์‚ฌ์ดํŠธ๋ฅผ CMS API์— ์—ฐ๊ฒฐํ•˜๊ธฐโ€บ