4. Link Relation Types - 链接关系类型
link relation type 用于标识资源之间 link 的语义.
目的
语义标识
- 定义该关系的含义
- 示例: "copyright" 表示 target 包含 copyright 条款
- 可以指示 target resource 的属性或行为
- 示例: "service" 表示一个 protocol interface
不是 Media Types
relation type 与 media type 不同:
- 不标识表示格式
- 仅描述资源之间如何相关
- media type 由 Content-Type header 决定
relation type 的类型
4.1. Registered Relation Types
特征:
- 在 IANA 注册且定义明确的 token
- 促进跨应用复用
- 比较时不区分大小写
- 必须符合
reg-rel-typeABNF 规则
命名指南:
- 使用适当的具体程度
- 应用特定语义 -> 具体名称
- 通用语义 -> 通用名称
约束:
- 不得约束 context IRI 的 media type
- 不得约束 target IRI 的 media type
- CAN 指定 target resource 行为
- CAN 指定允许的 HTTP method/media type
应用数据:
- registry 可以包含应用特定数据
- 示例: browser archiving behavior
- 通过 Link Relation Application Data registry 注册
4.2. Extension Relation Types
定义:
- 唯一标识 relation type 的 URI
- extension relation type 适用于不使用 registered relation type 的应用
- URI 可以指向语义定义
使用指南:
- client 不应该自动访问 URI
- 这样可以避免给服务器带来负担
- 比较方式: 不区分大小写的字符串匹配
- 建议使用小写 URI
序列化:
- 在 Link header 中必须是 absolute URI
- 如果包含分号 (;) 或逗号 (,), 必须加引号
- 其他序列化可以使用不同形式 (例如 CURIE)
Registry: IANA Link Relation Types