Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript google translate api v2是RESTful架构吗?_Javascript_Rest_Google Translate - Fatal编程技术网

Javascript google translate api v2是RESTful架构吗?

Javascript google translate api v2是RESTful架构吗?,javascript,rest,google-translate,Javascript,Rest,Google Translate,Google translate API v2是纯GET风格的,在https://www.googleapis.com/language/translate/v2 因此,基本上该工具的所有变体都将被这样调用https://www.googleapis.com/language/translate/v2?parameters 他们声称这项服务是宁静的(http://code.google.com/apis/language/translate/v2/using_rest.html)因为它基于一个简

Google translate API v2是纯GET风格的,在
https://www.googleapis.com/language/translate/v2

因此,基本上该工具的所有变体都将被这样调用
https://www.googleapis.com/language/translate/v2?parameters

他们声称这项服务是宁静的(http://code.google.com/apis/language/translate/v2/using_rest.html)因为它基于一个简单的GET url

但严格地说,它实际上是一个RESTful架构吗


因为有一个基于简单GET url的服务与RESTful并不相似,对吧?

我个人只会将任何服务作为REST公开,前提是我可以将该服务建模为面向资源的服务,在大多数情况下,这是关于将数据公开为资源。在GoogleTranslateAPI的例子中,它提供了更多的RPC感觉,而不是它公开的资源。
因此,即使谷歌可以将其称为REST(因为它基于简单get URL),但我不认为它是基于REST的服务。另外,如果您查看URL,它不是在标识资源,而是看起来更像是一个端点,您可以在查询字符串中向其传递值,并根据这些值获得结果。

如果您想将其称为RESTful,它应该符合Fielding的标准

  • 客户机-服务器-将UI与数据存储分离

  • 无状态服务器—提高可靠性和可扩展性

  • 客户端缓存-减少一些网络流量

  • 统一接口—将实现与它们提供的服务解耦

  • 分层系统-意味着每个组件只关注其正下方或正上方的组件

  • 按需编码-允许通过下载小程序或脚本扩展客户端功能

它还应该具有可寻址资源、表示方向、自描述消息、无状态服务器和可缓存性

那个么,若API只是一个带有多个参数的GET调用呢?问题是:GET(带参数)是幂等的且安全的吗?我想是的。这是一个“只读”接口。您永远不会更改服务器上的状态。因此,对于给定的查询参数,GET是安全的、幂等的且可缓存的

这对我来说很平静


现在,当人们使用GET来发布内容时。。。。这就是你应该反对的地方。

好吧,那么基本上,如果我有一个基于简单GET URL的服务,在该URL中提供参数并以json的形式接收数据(有点像google API的结构),我可以声称它是一个restful架构吗?实际上这是非常主观的,REST本身有不同的层次,从简单的URL映射到资源,再到超链接,它是一种金字塔。您的服务可以是这个金字塔中的任何特定层,但是是的,您可以在任何级别调用REST full:)+1,就像我在这里说的: