商业系统
内容与发布
包含集合、博客文章、页面与全站导航,并支持草稿、审核、预约发布与重定向功能。
内容是网站发布的一切信息:您自定义的结构化集合、博客、由模块组成的页面,以及每个页面共享的页眉、页脚与设置。相同的内容可同时服务于 Kanorio 托管的网站以及您自行开发的前端。
核心对象
- 集合与项目:您可以定义集合的字段,例如文本、富文本、数字、日期、媒体以及对其他集合的引用,而项目则用于存储数据。集合可将特定字段限制为仅限会员或买家访问。
- 文章:博客是一组内置的集合:文章、分类、标签与作者。文章支持发布前的审核与预约发布功能。
- 页面与模块:每个页面都是一系列已定义类型的模块。托管网站会渲染这些模块;无头前端(headless front end)则读取相同的数据。
- 全局设置:页眉、页脚与网站设置,例如行动呼吁(CTA)按钮与社交链接。
- 重定向与修订:重命名页面会自动创建重定向,且可还原内容的旧版本。
- 导入:从其他平台迁移文章,并保留图片、分类与原始日期。
API 的运作方式
- 使用 Management API 进行写入。对页面、全局设置与文章的写入在执行发布操作前均为草稿。除非您要求创建草稿,否则集合项目会立即发布。
- 使用 Content Delivery API 读取已发布的内容。它是匿名、边缘缓存且对浏览器安全的,且每个响应都会在一个
assets映射表中解析媒体。 - 监听
collections.item.*、content.page.*与content.translation.*Webhooks,其cacheTags可让您精确刷新已变更的页面与语言环境。
API 开放的范围
- Collections (structured content)可用
- API
- Management API
collections.*(typed fields including references, media andjson; field-levelaccessPolicy),items.*; DeliveryGET /collections/*(filter[f][op],filter[any], relative datesnow-30d,sort,total=false,assetsmap,expandfullfieldData,has_slug/eq_slug,accesssummary &Bearer knr_cat_gating); CLIkanorio types - 托管网站
/dataworkbench; collection list / detail pages- Webhooks
collections.item.*,collections.items.bulkChanged,collections.schema.changed
- Blog (system collections)可用
- API
- Management API
posts.*,blog_categories.list,blog_tags.list; DeliveryGET /collections/blog/items(?formats=markdown,html,plaintext,segments[],toc[],primary_author,primary_category),GET /feed(RSS 2.0) &GET /feed.atom - 托管网站
/postseditor,/data/blog; hosted/blog,/blog/:slug- Webhooks
collections.item.*
- Pages, globals (header/footer) & redirects可用
- API
- Management API
pages.*,globals.*,site.publish; DeliveryGET /pages,GET /pages/:slug,GET /globals/headers/:key,GET /globals/footer,GET /redirects - 托管网站
/editorvisual builder- Webhooks
content.page.*,content.site.published(withpreviousSlug&cacheTags)
- Draft preview tokens (
knr_pv_)可用- API
- Management API
site.create_preview_token; DeliveryX-Kanorio-Preview: knr_pv_...(edge HMAC verified, bypasses cache); SDK@kanorio/sdk/preview(createPreviewRouteHandler,previewHeaders,tokenFromCookieHeader) - 托管网站
/settings/developerpreview token manager;/consolePreview button
- GraphQL API不提供
- 替代做法
- Kanorio exposes a strongly typed REST + OpenAPI 3.1 Content Delivery API with
?fields=projection, 1-layer?expand=relation resolution, top-levelassetsbatch resolution, andnpx @kanorio/cli typesfor end-to-end TypeScript types without GraphQL schema maintenance.
- Multi-environment / schema branching & content staging environments不提供
- 替代做法
- Each site uses a double-buffered Draft (
fieldData) and Published (publishedFieldData) model with read-onlyknr_pv_preview tokens for staging verification. If you need a separate sandbox, create a dedicated dev site.
- Scheduled publishing for posts & collection items可用
- API
posts.publish/items.publishaccept optionalscheduledAt(freezes text content as a revision — posts: title/excerpt/contentMarkdown/showToc, items: fieldData/slug — and publishes that exact snapshot when due; taxonomy, SEO and sortOrder are not frozen);posts.unschedule/items.unscheduleto cancel- 托管网站
/postsand/datapublish button (schedule picker, badge, cancel, "Scheduled" quick filter)
- Batch release packages & multi-step approval workflows (assigned reviewers, comment threads)不提供
- 替代做法
- Blog posts and collection items support fine-grained custom RBAC roles (
collections:schema,collections:managevs.collections:publish/blog:publish, separating who can edit from who can publish) with 1-click access requests, plus a lightweight single-step review (*.request_review/*.reject_reviewwith one rejection-reason note, no assignment or comment threads). For cross-content batch releases or multi-step approval, orchestrate your own CI/cron on top ofposts.publish/items.publish.
- Per-item revision history, trash, optimistic concurrency & edit/publish separation for custom Collections and blog posts可用
- API
- Management API
revisions.*(subject: CONTENT_ITEMorBLOG_POST, up to 50 revisions/item, 30-day retention);items.list_archived,items.restore,items.purge;items.update/items.bulk_update/posts.updateacceptifUnmodifiedSinceand returnCONFLICTwith the currentupdatedAtinstead of silently overwriting;collections:publish/blog:publishscopes are separate fromcollections:manage/blog:manage - 托管网站
/dataworkbench record panel (version history tab, trash view, conflict banner);/postsarticle editor (conflict banner)
items.bulk_delete& Import/Export REST API不提供- 替代做法
- Custom Collections provide draft/published double buffering, backoffice CSV/JSON import & export (
/data), and full-site ZIP backups (collections/*.json).
- Visual click-to-edit overlays (Content Source Maps / stega) on external storefronts不提供
- 替代做法
- External storefronts use read-only
knr_pv_preview tokens (and?kp=knr_pv_...handoff from the backoffice Preview button) with@kanorio/sdk/previewrather than DOM-injected click-to-edit overlays.
API 参考
- SectionsManagement API · 1 个端点
- GlobalsManagement API · 7 个端点
- PagesManagement API · 7 个端点
- PostsManagement API · 9 个端点
- ImportsManagement API · 7 个端点
- Blog categoriesManagement API · 2 个端点
- Blog tagsManagement API · 2 个端点
- AuthorsManagement API · 3 个端点
- CollectionsManagement API · 5 个端点
- ItemsManagement API · 15 个端点
- RevisionsManagement API · 3 个端点
- RedirectsContent Delivery API · 1 个端点
- PagesContent Delivery API · 2 个端点
- GlobalsContent Delivery API · 2 个端点
- CollectionsContent Delivery API · 1 个端点
- ItemsContent Delivery API · 2 个端点
- FeedContent Delivery API · 2 个端点
Webhook 事件
- collections.item.created · Fired when a collection item is created (includes publicVersion and cacheTags).
- collections.item.updated · Fired when a collection item draft or published payload is updated.
- collections.item.published · Fired when a collection item is published and visible on the Content Delivery API.
- collections.item.unpublished · Fired when a collection item is unpublished and removed from the Content Delivery API.
- collections.item.deleted · Fired when a collection item is permanently deleted.
- collections.items.bulkChanged · Fired once per batch operation (bulkCreate, bulkUpdate, publish/unpublish batch, or CSV/JSON import).
- collections.schema.changed · Fired when a collection or its field schema is created, updated, or deleted (triggers `kanorio types` regeneration).
- content.site.published · Fired when a site is published, invalidating pages, globals, and redirects caches.
- content.page.published · Fired when a page is published on the site.
- content.page.updated · Fired when a published page's content or slug is updated (includes previousSlug when renamed).
- content.page.unpublished · Fired when a page is unpublished or hidden.
- content.page.deleted · Fired when a page is deleted.
指南
近期变更
- 2026-11-04 Localization: publishing one locale needs the record's publish permission
- 2026-11-04 Localization: each locale can have its own URL slug
- 2026-11-03 Site brand identity: one setting for hosted pages, checkout, sign-in, emails and your own front end
- 2026-11-01 Authors and instructors: one shared list for posts and deliverables
- 2026-10-31 Import posts from another site
给网站所有者
如何在后台使用这项产品,请参阅帮助中心。
打开帮助中心