统一界面
统一接口约束是任何REST服务设计的基础.[14] 统一界面简化和分离了体系结构,使每个部分都能独立发展.该界面的四个指导原则是:
确定资源
在请求中标识单个资源,例如在基于Web的REST系统中使用URI.资源本身在概念上与返回给客户端的表示分开.例如,服务器可以将数据从其数据库发送为HTML,XML或JSON,其中没有一个是服务器的内部表示,并且它是相同的一个资源.
通过这些表示来操纵资源
当客户端持有资源的表示(包括附加的任何元数据)时,它具有足够的信息来修改或删除资源.
自我描述性的信息
每条消息都包含足够的信息来描述如何处理消息.例如,要调用的解析器可以由Internet媒体类型(以前称为MIME类型)指定.响应还明确指出了它们的可缓存性.
超媒体作为应用程序状态的引擎(AKA HATEOAS)
客户端仅通过服务器在超媒体内动态识别的动作(例如,通过超文本内的超链接)进行状态转换.除了应用程序的简单固定入口点之外,客户端不会假定任何特定操作可用于除先前从服务器接收的表示中描述的任何特定资源之外的任何特定操作.
我正在听这个主题的讲座,讲师说:
"当有人使用我们的API时,如果您能够获得客户对象并且您知道有订单对象,那么您应该能够获得具有与客户对象相同的模式的订单对象.这些URI是看起来像是彼此."
这让我觉得不对劲.这不是关于URI的外观或者是否存在一致性,因为它是使用URI的方式(识别资源,通过表示来操纵资源,自我描述性消息和hateoas).
我不认为这就是Uniform Interface的含义.究竟是什么意思?