超媒体格式全解析:从基础到问题类型
在超媒体的世界里,存在着多种不同的格式,每种格式都有其独特的特点和用途。下面我们就来详细了解一下这些超媒体格式。
1. CSDL 文档与 OData 的问题
在资源表示之外保留额外信息本身并没有问题,就像配置文件或 JSON - LD 上下文所做的那样。然而,CSDL 文档可被视为服务描述文档,它呈现出整个 API 的概览,使其看起来像一个关系数据库。用户看到这样的文档时,往往会基于它自动生成客户端代码。这就导致生成的客户端与特定版本的服务描述紧密耦合。一旦服务器实现发生变化,CSDL 文档会随之改变,但客户端却无法匹配这种变化,从而导致客户端崩溃。不过,我们并非只能以这种有问题的方式使用 OData。如果使用媒体类型 application/json;odata = fullmetadata ,OData 表示将包含其自身的超媒体控件。客户端仅在需要触发复杂的状态转换(如无法用 OData 完全描述的函数或操作)时,才需要参考 CSDL 元数据文档。
2. 纯超媒体格式
纯超媒体格式具有非常通用的应用语义,或者根本没有应用语义,它们主要关注表示 HTTP 的协议语义。用户可以通过将链接关系和语义描述符插入预定义的插槽来提供自己的应用语义。以下是几种常见的纯超媒体格式:
| 格式名称 | 媒体类型 | 定义来源 | 介质 | 协议语义 | 应用语义 |
| ---- | ---- | ---- | ---- | ---- | ---- |
| HTML | text/html 和 application/xhtml+x
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



