常见问题
概念
什么是 headless CMS?
headless CMS 是一种把管理内容的地方和展示内容的画面分开的内容管理系统。这里的 "headless" 意思是没有另外绑定固定的画面(UI)。
在传统方式中,管理内容的地方和展示内容的网站画面是捆绑在一起的。headless CMS 把这两者分开。内容在一处管理,再通过约定好的通道(API,一种按既定规则用地址收发数据的方式)传递出去。因此同一份内容可以被网站、移动应用等多个不同画面取用。
WEEGLOO 就属于这种 headless CMS。在内容工作室中创建并发布内容后,网站或应用会取得这个发布版本并显示在画面上。WEEGLOO 的整体运作在如何运作中说明。
内容以什么方式提供?
WEEGLOO 通过基于 JSON(收发数据时使用的、以字符为基础的数据格式)的 RESTful API 提供内容。API 是一条按既定规则用地址收发数据的通道。
按用途,API 分成了多个。
- 读取已发布内容的 CDA(Content Delivery API):网站或应用取得内容并展示给访问者时使用。
- 创建并管理内容的 CMA(Content Management API):把内容工作室中进行的撰写、修改、发布等操作放到代码里执行时使用。
像这样把读取与管理分开后,就可以在不同环境中只挑选需要的通道来使用内容。什么情况用哪个 API,在 API 参考中说明。
在移动应用中也能使用吗?
可以。正如什么是 headless CMS?中说明的那样,WEEGLOO 把内容和展示内容的画面分开来管理。因此同一份内容既可以在网站中取用,也可以在移动应用中取用。应用获取已发布内容的方式和网页相同。
把会员登录接入移动应用(Android、iOS)时,有一点不同。登录完成后把结果送回应用的这段连接和网页不一样,需要另外的技术步骤。这些步骤在 Auth API 中说明。
把移动应用与 WEEGLOO 对接的完整示例,可以在跑步记录服务中从头到尾查看。
内容管理
要用多种语言发布内容,该怎么做?
要用多种语言提供 Content 或 Media,首先要在 Space 中添加语言(Locale)。
- 从左侧菜单进入 Space 设置的 Locale 管理画面。
- 点击右上角的 + 添加 按钮,在下拉菜单中选择想要的语言。
- (选填)指定 Fallback Locale。它是当该语言的值为空时替代显示的语言。
- 点击 保存。
添加 Locale 之后,要为每个需要按语言分别填值的 Field 开启多语言。在 Content Type 编辑画面中打开相应 Field 的 配置 Field,在 设置 标签页中确认 为此 Field 启用本地化 是否已开启。
详细内容在多语言管理中说明。
Content 的有效性检查怎么做?
有效性检查是给 Field 附加"能填入这个格子的值"的条件的功能。不符合条件的值无法保存,从而防止错误的 Content 堆积起来。
可附加的条件因 Field 类型而异。例如,关联 Media 的 Field 有限制可上传文件种类或限制文件大小、图片尺寸的条件,数字 Field 有规定值范围的条件。
要给 Field 添加有效性检查,请按以下步骤进行。
- 进入 Content Type 编辑画面,点击要附加条件的 Field。
- 在 配置 Field 中切换到 验证 标签页。
- 该 Field 类型可用的条件会出现。选择需要的条件并设置。
详细内容在有效性检查中说明。
Content 标题怎么设置?
Content 标题是在 Content 列表中用来辨认每一项的名称。只要是 ShortText 类型的 Field,任何一个都可以用作标题。
在 Content Type 编辑画面中打开要用作标题的 Field,把这个 Field 指定为用作标题即可。每个 Content Type 只能有一个 Field 用作标题,所以如果已经有别的 Field 被指定为标题,就要先解除它,再重新指定。
第一次创建 Field 时把它指定为标题的流程,在 Content 建模中说明。
Organization 与 Space 管理
要邀请用户,该怎么做?
要把某个用户拉进 Space,那个用户首先必须属于某个 Organization。所以协作从邀请进 Organization 开始。
把用户邀请进 Organization 的操作,由拥有 Owner 或 Admin 角色的用户来完成。
- 进入 Organization 设置画面。
- 在左侧菜单中点击 Membership。
- 点击右上方的 邀请 按钮,输入电子邮件和要赋予的角色等信息,发出邀请。
被邀请的用户会立即成为成员。无需另外经过"接受"步骤,系统会向被邀请的邮箱发送一封通知邮件。
关于邀请和角色的详细内容,在 Organization 与 Space中说明。
API
sys.id 值是唯一的吗?
是的。sys.id 在整个服务中是唯一生成的。因此即使是属于不同 Organization 或 Space 的资源,值也不会重复。
sys 中包含的信息,在系统属性 (sys)中说明。
Content 的引用资源怎么查询?
使用 include 参数,就能在一次请求中把 Content 连同它所指向的引用资源一并取得。
GET /v1/spaces/{spaceId}/contents?include=1上面的请求在查询 Content 列表的同时,一并取得一层深度的关联引用数据。把值提高到 2 或 3,会展开取得更深的层级。
include 不只用于 Content,所有资源查询都能以同样的方式使用。详细内容在通用查询参数中说明。
搜索条件支持 OR 运算吗?
REST API 不直接支持把多个条件用 OR(两个条件满足任一即可取得)连接的功能。在一次请求中同时给出多个条件,只会得到全部满足(AND)的结果。如果需要 OR,就按条件分别发出请求,再把收到的结果合并使用。
用条件缩小列表范围的方法,在通用查询参数中说明。
结算与费用
可以更改套餐吗?
可以随时把套餐升级(upgrade)或降级(downgrade)。升级后,会对剩余的计费周期按比例结算;降级则从下一个计费周期开始生效。
各套餐的额度和价格,在套餐中说明。
API 用量怎么计算?
许多内容平台以 API 调用次数(请求数)为基准计算用量。WEEGLOO 不是以调用次数,而是以实际收发的数据量(数据传输量)为基准计算用量。即使调用次数相同,如果收发的数据更大,计入的用量也会更多。
Free、Basic、Pro 套餐每月固定的数据传输量已包含在月费之内。套餐表中还一并标注了换算成调用次数的数值,以便估算这一传输量。像 Advanced Search 这类一次搜索会计为多次调用的操作,也是在这一传输量之内使用的。
如果需要超出固定传输量的更大用量,可以使用按实际用量计费的 Enterprise 套餐。各套餐的数据传输额度,在套餐中说明。
