我正在编写一个用作 Web 服务的 C++ API。 API 中的函数将 images/path_to_images 作为输入参数,对其进行处理,并给出一组不同的 images/paths_to_images 作为输出。我正在考虑实现一个 REST 接口(interface),以使开发人员能够将此 API 用于他们的项目(与他们喜欢使用的任何语言无关)。但是,我知道 REST 仅在您拥有要查询或操作的数据集合时才有用,而这里的情况并非如此。 [我拥有的集合具有处理提供的数据的不同功能。]
那么,是我为此实现一个 RPC 接口(interface)更好,还是可以使用 REST 本身来完成?
最佳答案
与 lcfseth 一样,我也会选择 REST。 REST 确实是基于资源的,在您的情况下,您可能会认为没有资源可以处理。然而,这并不完全正确,您系统中的图像转换器就是资源。您将图像发布到它并返回新图像。所以我会简单地创建一个 URL,例如:
POST http://example.com/image-converter
您将图像发布到它,它返回一些包含新图像路径的数组。
潜在地,您还可以:
GET http://example.com/image-converter
这可以告诉您图像转换的状态(假设这是一个耗时的过程)。
这样做的好处是您可以重复使用开发人员熟悉的 HTTP 动词,界面几乎是自记录的(当然您仍然需要记录 POST 调用接受和返回的格式).使用 RPC,您必须定义新动词并记录它们。
关于c++ - C++ API 的 REST 与 RPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778417/