Thrift作为REST的公共API替代品?

时间:2012-04-06 00:41:18

标签: api rest thrift

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

我最初想把它变成一个普通的REST API,但我一直在想一下,如果能够在一批中编译多个客户端库,它会有多酷。

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

如果REST创建多个客户端库的最佳方法是什么,或者我只需要潦倒并实际编写它们?

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

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

4 个答案:

答案 0 :(得分:12)

首先,REST和Thrift是苹果到橙子 - 前者是一种通用风格,后者是特定的二元RPC系统。

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

所以问题是你想要获得什么?你到底认为“酷”到底是什么?如果你只是想玩新技术,那没有什么不妥,但你应该首先使用它,然后看看它是否有意义。

答案 1 :(得分:10)

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

另一方面,如果REST存在复杂性或性能问题,请选择节俭或更合适的其他方式。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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