繁体   English   中英

谷歌翻译 api v2 是 RESTful 架构吗?

[英]is google translate api v2 a RESTful architeture?

谷歌翻译 API v2 是纯 GET 风格,他们只有一个 url (或一个资源)在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 url。

但严格来说,它真的是一个 RESTful 架构吗?

因为拥有基于简单 GET url 的服务并不类似于 RESTful 对吧?

我个人会将任何服务公开为 REST,前提是我可以将 model 服务作为面向资源的服务,这在大多数情况下是将数据公开为资源。 在谷歌翻译 API 的情况下,它给人的感觉更多的是 RPC,而不是它暴露的资源。 因此,即使谷歌可能将其称为基于 REST(因为它基于简单的 GET URL),我也不会将其视为基于 REST 的服务。 此外,如果您查看 URL,它并没有识别资源,而是看起来更像是您将查询字符串中的值传递到的端点,并根据这些值获得结果。

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

  • 客户端-服务器——将 UI 与数据存储分开

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

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

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

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

  • Code-on-Demand——允许通过下载小程序或脚本来扩展客户端功能

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

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

这对我来说是 RESTful 的。

现在,当人们使用 GET 发布内容时......这就是您应该 object 的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM