22

我开始为我正在开发的新网站创建 API。

我最初想让它成为一个普通的 REST API,但我一直在想,如果能够在一批中编译多个客户端库,那会是多么酷。

Thrift 是公共 API、套接字和所有的可行选项,还是我应该坚持使用 REST?

如果使用 REST,创建多个客户端库的最佳方法是什么,或者我是否只需要放下心来并实际编写它们?

否则,如果 Thrift,我会编译库并只提供下载链接还是简单地给开发人员 .thrift 文件以生成他们自己的库?

注意:它仍然是一个小站点,所以我会为 API 创建 Thrift 规范文件。

4

4 回答 4

12

首先,REST 和 Thrift 是对橘子的苹果——前者是通用风格,后者是特定的二进制 RPC 系统。

但是对于公共接口,我认为使用标准文本格式(通常是 JSON 或 XML)的 REST 更有意义;因为它更容易从任何语言或平台访问;尽管在许多平台上都有 Thrift 客户端,但它仍然需要做更多的工作。它还强制客户端使用特定的访问方式,几乎必须使用特定的 Thrift 客户端库。

所以问题宁愿是你究竟想要获得什么?您到底认为那里“酷”是什么?如果你只是想玩新技术,那没有错,但你应该先玩它,然后看看它是否有意义。

于 2012-04-12T00:18:23.693 回答
10

如果您的 API 足够简单,您可以使用 REST 来表达它并具有可接受的性能,那么坚持 REST 可能会更好,因为为基于 REST 的 API 编写客户端代码的障碍通常较低。

另一方面,如果 REST 存在复杂性或性能问题,请使用 thrift 或其他更合适的方法。

于 2012-04-06T07:11:41.217 回答
0

如果您自己开发不同的库,您将处于同一条船上。我认为即使没有库(或者如果他们实现自己的库),人们也更容易使用 REST。另一方面,如果您喜欢 Thrift 是二进制的,json 也可以以类似的方式使用,请查看此处了解更多信息http://bsonspec.org/

于 2014-05-26T12:39:27.937 回答
0

REST 的一大优势是您不必创建客户端库。您可以将开发人员指向您的端点列表,他们应该能够从那里找出答案。一些设计不佳的大型 REST 服务将提供客户端库来掩盖它们的丑陋,但如果 API 简单且设计良好,则没有必要。

于 2014-11-04T19:16:22.020 回答