Google翻译API v2是纯粹的GET风格,他们在https://www.googleapis.com/language/translate/v2
所以基本上所有工具的变体都会像https://www.googleapis.com/language/translate/v2?parameters
他们声称该服务是RESTful(http://code.google.com/apis/language/translate/v2/using_rest.html),因为它基于简单的GET网址。
但严格来说,它实际上是一个RESTful架构吗?
因为基于简单的GET URL提供服务并不类似于RESTful吗?
答案 0 :(得分:1)
我个人会将任何服务公开为REST,只有我可以将服务建模为面向资源,在大多数情况下是将资源作为资源公开。在谷歌翻译API的情况下,它提供了更多的RPC感觉而不是它正在暴露的资源。 因此即使谷歌可能将其称为基于REST(因为它基于简单的GET URL),我不会将其视为基于REST的服务。此外,如果您查看URL,它不会识别资源,而是看起来更像是在查询字符串中传递值的端点,并根据您获得结果的值。
答案 1 :(得分:1)
如果你想把它叫做RESTful,它应该符合Fielding的标准
客户端 - 服务器 - 将UI与数据存储分开
无状态服务器 - 提高可靠性和可扩展性
客户端缓存 - 减少部分网络流量
统一接口 - 将实现与它们提供的服务分离
分层系统 - 意味着每个组件只关注其下方或上方的组件
按需代码 - 允许通过下载小程序或脚本来扩展客户端功能
此外,它还应具有可寻址资源,表示方向,自描述消息,无状态服务器和可缓存性。
那么,如果API只是一个带有多个参数的GET调用呢?问题是:GET(带参数)是幂等且安全的吗?我想是的。这是一个“只读”界面。您永远不会更改服务器上的状态。因此,对于给定的查询参数,GET是安全的,幂等的和可缓存的。
这对我来说很安静。
现在当人们使用GET发布内容时......那就是你应该反对的地方。