资源坐标
资源坐标由 resourceType(资源类型)和 resourceId(资源项 ID)组成,可以唯一确定一个资源。 资源项 ID 可以在不同资源类型中重复,使用时必须同时指定资源类型。 各业务通常只接受资源坐标的一个子集;类型出现在下表中,不代表它能用于所有业务。具体允许范围见下方使用场景,并以对应接口和业务规则为准。
{ resourceType: "game", resourceId: "example_game" }资源分类依据业务唯一性;组合定位类仍可能使用 SN 作为当前接口的 resourceId。定位字段列出公开业务字段,不表示这些字段都位于 metadata。接口收到公开标识后,内部关联使用资源类型与 NO。
独立 ID 类
有必填的业务 ID,使用资源类型和自身 ID 唯一定位。
内容形式逐项说明资源自身的名称、标题、简介、正文等内容字段。关联的子文档、评论和消息按其自身资源说明;没有这些内容字段的资源显示 —。
表中说明普通访问者查看正式资源的权限,公开资源无需登录;编辑和投稿另有权限校验。
组合定位类
没有独立业务 ID,关联资源的公开标识与必要的区分字段组成唯一组合。
内容形式逐项说明资源自身的名称、标题、简介、正文等内容字段。关联的子文档、评论和消息按其自身资源说明;没有这些内容字段的资源显示 —。
表中说明普通访问者查看正式资源的权限,公开资源无需登录;编辑和投稿另有权限校验。
SN 定位类
没有独立业务 ID,业务字段组合允许重复,使用自身 SN 唯一定位。
内容形式逐项说明资源自身的名称、标题、简介、正文等内容字段。关联的子文档、评论和消息按其自身资源说明;没有这些内容字段的资源显示 —。
表中说明普通访问者查看正式资源的权限,公开资源无需登录;编辑和投稿另有权限校验。
图片形式
以下比例均为宽 : 高,指页面中的展示区域。图片保持原始比例,不拉伸;圆角由页面组件处理,上传图片无需预先添加圆角。
16 : 9
1 : 1
1 : √2
1 : 1
1 : 1
- 博客文章封面 · 16 : 9
- 文章列表与大卡片统一使用 16 : 9,窄屏保持相同比例;封面居中裁切以填满区域。
- 方形封面 · 1 : 1
- 歌曲、音频及通用资源封面使用方形展示区域。小卡片封面圆角为 5px;通用图鉴详情封面使用全局圆角 20px。
- 影视与活动封面 · 1 : √2
- 影视与活动的小卡片、列表、详情与大卡片统一使用 1 : √2 的竖版展示区域。小卡片圆角为 5px,影视列表、详情与大卡片及活动列表、详情为 10px。
- 图书封面 · 2 : 3
- 图书列表、小卡片与详情统一使用 2 : 3 展示区域,无圆角;封面按原始比例完整显示,比例不匹配时留白。
- 游戏图标 · 1 : 1
- 游戏小卡片与游戏列表的图标使用方形展示区域,圆角为宽高的 22%,随图标尺寸缩放。
- 角色头像 · 1 : 1
- 角色使用圆形头像,圆角为 50%,复用头像组件。
影视与活动小卡片封面居中裁切以填满区域;图书小卡片保留完整封面;通用图鉴详情保留完整图片,比例不匹配时留白。不同展示场景沿用对应组件的圆角。
属性与关系
属性定义、属性、关系定义和关系本身也是资源,分别使用上表中的资源类型与资源项 ID
属性描述资源,关系连接资源
属性记录一个资源的特征或信息,关系记录两个资源之间的联系。页面中的“扩展信息”用于展示属性,“关联”用于展示关系。
例如,资源的某项数值可以用属性记录;一个合集收录某个作品,则用关系连接合集与作品。
属性与属性定义
属性定义说明这项信息是什么、适用于哪些资源,以及可以填写什么样的值。具体属性将某个资源、一个属性定义与填写的值联系起来。
相同含义的信息应使用同一个定义,便于一致地填写、展示和理解。填写前先查看已有定义,按定义要求提供数值、文字或其他形式的值。
关系与关系类型
关系类型说明两端资源之间的联系,以及两端分别允许使用哪些资源。具体关系连接两个明确的资源。
关系具有方向。例如从合集看作品是“收录”,从作品看合集是“所属合集”,两种读法描述同一条关系。
关系还可以包含这次联系的补充信息。例如作品在合集中的排序属于这条收录关系,同一作品在另一个合集中的排序可以不同。
填写与来源
先确认资源和含义,再选择适用的属性定义或关系类型。资源名称用于阅读,资源身份用于确定具体对象;同名资源需要分别核对。
填写有依据的信息,并在提供来源的位置记录可核实的出处。作者、成员等资源之间的联系使用关系表达,简介用于介绍资源本身。
ID 是怎么生成的
业务 ID:命名后保存
用户、知识库、角色、影视、游戏、活动、歌曲、产品、图书、美术和地点使用保存的业务 ID,并非由标题自动算出。改显示名称不会自动重算 ID;引用时使用接口返回的完整 ID。
不同类型的 ID 有各自的命名规则,具体命名规则见上表。
角色 ID 的 _ 连接同一名称内部的词,姓名保留原语言顺序;. 用于归属和重名消歧,从右向左读。
图鉴项目的 ID 仅使用小写字母、数字和下划线。歌曲是例外,可用 . 表示归属关系。
SN 定位类
SN 作为 resourceId,使用接口返回的完整值。
歌曲作品的 songId 与录音版本的 audioSn 是两种身份。音频详情和通用属性、关系使用 audioSn;音频基本信息修改也使用 audioSn。新建录音在发布前使用接口返回的创建稿坐标。
组合定位类
帖子(评论区)使用所属资源的 { resourceType, resourceId } 定位,不再使用帖子 ID 或拼接页面路径。查询和发表评论时提供资源坐标; 回复使用 parentCommentSn,删除评论使用评论 SN。 独立页面的评论区使用 resourceType: 'page' 与已登记的页面标识, 例如 { resourceType: 'page', resourceId: 'about' }。
图鉴文档项的业务组合坐标由 图鉴类型/条目ID/文档 ID 组成。通用属性的业务组合坐标由 资源类型/资源项ID/属性定义ID 组成。
archive_document → song/example_song/notes
resource_attribute → song/example_song/external_id这两个示例中的歌曲 ID 都是 example_song,notes 是文档 ID,external_id 是属性定义 ID。组合 ID 中的 / 用于分隔这些部分,不属于歌曲 ID。
资源坐标的使用方式
- 查看详情时,使用对应业务的详情路由和 ID;详情路由不是统一的
/resourceType/resourceId。 - 查询属性或关系时,提交完整的
{ resourceType, resourceId };创建关系时,来源和目标各提供一组坐标,再指定relationDefinitionId。 - 编辑资源时,资源坐标标明编辑对象;
draftSn标明某一次投稿。投稿 SN 与正式资源 ID 不能互换,提交投稿也不等于已经公开。 - 拼接 URL 时,使用表中路径并在前面添加当前站点地址。— 表示没有独立页面。直接拼接原始资源项 ID,保留其中的 / 层级,不进行 URL 编码。
正文文件键、去重哈希都不是对外资源 ID。角色、影视等接口即使另有 SN,通用事实的 resourceId 仍应使用上表规定的业务 ID。
资源坐标的使用场景
以下场景使用 { resourceType, resourceId } 资源坐标确定操作对象,各自允许的资源范围如下。坐标格式正确后,还需满足资源可访问性、操作权限及具体定义的限制。
- 扩展属性
- 查看或补充资源的扩展信息时,用资源坐标确定所属资源,再用属性定义 ID 指定具体属性,例如给某首歌曲补充外部平台编号。
支持 character、movie、game、activity、song、song_audio、video、product、book、artwork、spot、collection、wiki_entry、link、archive_document。属性值须符合属性定义规定的值格式。
- 资源关系
- 查看资源与其他资源的关联时,用资源坐标确定查询对象;添加关联时,来源和目标各提供一组坐标,再选择关联类型。
支持 character、movie、game、activity、song、song_audio、video、product、book、artwork、spot、collection、wiki_entry、link、archive_document。每种关系定义可进一步限制来源和目标的类型,以及角色子类型。
- 角色的图鉴项目标记与评分
- 角色对图鉴项目的想看/想玩、进行中、已完成标记,以及体验进度和评分,都使用被标记项目的资源坐标确定对象;同一项目的标记按角色分别保存。
支持 movie(影视)、game(游戏)、product(产品)、book(图书)、activity(活动)和 spot(地点)。产品可标记想买、在用、用过;图书可标记想看、在看、看过;活动和地点仅支持想去、去过,不支持 doing。标记和评分档位接口使用对应条目的业务 ID,路径参数 itemId 对应 resourceId;character 是标记所属角色。
- 投稿与审核
- 资源坐标用于标明投稿对象,并查找当前角色对该资源的进行中投稿;审核列表也用资源类型和资源 ID 展示对象。某一次投稿另有
draftSn。基本信息投稿包括 wiki_entry、character、movie、game、activity、song、song_audio、video、link、product、book、artwork、spot、collection;介绍文档、属性、关系及其定义使用各自的专用投稿入口。允许范围按投稿种类确定,不能将任意资源坐标直接交给同一个编辑接口。
- 资源评论区
- 博客、知识库、角色和图鉴页面的评论区,使用所属资源的资源坐标查询和发表评论;独立留言板使用 page 类型与已登记的页面标识。
评论接口允许 character、game、movie、activity、blog_article、wiki_entry、song_audio、page;page 只允许已登记的页面标识。song、video、collection 等类型不在当前评论接口的允许范围内。
涉及文件的特殊场景
图片和文档涉及文件定位,只能使用资源类型与资源项 ID,不能使用内部 no。以下单独列出这两类场景及允许的资源类型。
- 资源图片库
- 管理端使用资源坐标查看或上传某个资源的图片;按资源类型列出有已上传图片的资源时,只需指定类型。
允许 blog_article、character、movie、game、song、song_audio、video、activity、product、book、artwork、spot、collection;这些图片管理接口需要管理员权限。
- 图鉴介绍文档
- 查看或编辑图鉴条目、角色的介绍与子文档时,先用资源坐标确定所属条目,再用文档 ID 定位具体文档。
所属资源允许 character、movie、game、activity、song、video、product、book、artwork、spot、collection,不包含 song_audio。文档自身的资源类型是 archive_document,与所属资源的类型不同。