可以在代码生成期间添加 Apache Thrift API 实现吗?
Can Apache Thrift API implementation be added during code generation?
我有一个虚拟节点集群。每个 OS 是 ubuntu
。我需要将 .thrift
上传到每个节点并生成 .thrift
.
我的问题是生成不包括函数的实现。据我所知,节俭是 OS 依赖的。我的本地机 运行ning win10
而虚拟机 运行 ubuntu
在我的本地机器上生成、实现并测试之后,有没有办法将实现添加到 .thrift
,以便在下一个生成中实现 api?
代码在 Python 中实现(如果重要的话)。
简而言之,Thrift 是关于在端点之间定义 API 或服务契约。 Thrift 中的代码生成步骤通常发生在开发期间,而不是在运行时。由于多种原因,实施不属于该合同的一部分。
正如您正确注意到的那样,尤其是在 RPC 用例中,客户端和服务器可能驻留在不同的平台上,并且可能使用不同的语言编写。但即使是同一个平台,只有一种语言,合约和它的实现仍然是两个不同的东西,而且应该是。
将 .thrift
IDL 文件上传到服务器并让该服务器生成端点和实现 "on the fly" 的用例不仅对我来说有点奇怪,而且也不是我想要的会调用典型的 Thrift 用例。最后同样重要的是,在安全方面,这种情况很快就会变成一场噩梦。
如果我们不知道确切的数据结构,在 IDL 中建模数据的方法显然需要非常通用。或者,使用 Avro(旨在在运行时处理灵活的数据结构)或完全不同的方法可能更适合这种情况。
我有一个虚拟节点集群。每个 OS 是 ubuntu
。我需要将 .thrift
上传到每个节点并生成 .thrift
.
我的问题是生成不包括函数的实现。据我所知,节俭是 OS 依赖的。我的本地机 运行ning win10
而虚拟机 运行 ubuntu
在我的本地机器上生成、实现并测试之后,有没有办法将实现添加到 .thrift
,以便在下一个生成中实现 api?
代码在 Python 中实现(如果重要的话)。
简而言之,Thrift 是关于在端点之间定义 API 或服务契约。 Thrift 中的代码生成步骤通常发生在开发期间,而不是在运行时。由于多种原因,实施不属于该合同的一部分。
正如您正确注意到的那样,尤其是在 RPC 用例中,客户端和服务器可能驻留在不同的平台上,并且可能使用不同的语言编写。但即使是同一个平台,只有一种语言,合约和它的实现仍然是两个不同的东西,而且应该是。
将 .thrift
IDL 文件上传到服务器并让该服务器生成端点和实现 "on the fly" 的用例不仅对我来说有点奇怪,而且也不是我想要的会调用典型的 Thrift 用例。最后同样重要的是,在安全方面,这种情况很快就会变成一场噩梦。
如果我们不知道确切的数据结构,在 IDL 中建模数据的方法显然需要非常通用。或者,使用 Avro(旨在在运行时处理灵活的数据结构)或完全不同的方法可能更适合这种情况。