最近几天,我一直在研究“真正”的RESTful API,并且我认为我已经接近理解它的要点了。
但其中一个让我困惑的事情是,我甚至无法想象如何为“真正”的超媒体API编写客户端:
我读过的大多数例子都是关于浏览器和蜘蛛的,但这并没有什么帮助:一个是人类指导和“智能”的,另一个是愚蠢和“随机”的。就目前而言,我有点感觉你需要学习人工智能才能让客户端正常运行。
有一件事对我来说不太清楚,那就是客户端如何知道在任何给定链接上使用哪个动词?这是否隐含在URI的'rel'类型中?另一种方法(在这里阅读)似乎是使用xhtml并具备可以解析和发布表单的客户端。
一个链接可能会更改,但链接的路径不会更改的可能性有多大? 在大多数示例中,路径和链接是相同的:
例如,如果我想设置一个客户端,从Toni的蛋糕店带回蛋糕列表:
http://tonis.com
{ link: { type : "cakes" ; uri : "http://tonis.com/cakes" } }
当Toni's变成Toni's Food Shop时,链接变成http://tonis.com/desserts/cakes
,会发生什么?
我们是否保留根目录下的初始链接cakes
以保持向后兼容性呢?如果不保留,那么对于被告知“前往根目录,在那里寻找蛋糕”的用户代理该如何重定向呢?
我漏掉了什么吗?