第一个使用 Apache Thrift 的程序——我应该在哪里定义接口?在客户端或服务器代码中
First program with Apache Thrift - Where should I define the interface? in client or server code
我正在制作一个 php 客户端,它通过 apache thrift 从 java 服务请求一个功能。我正在关注 tutorial 的 php 客户端代码。我需要了解一些东西,生成为 file.thrift 的接口应该在客户端和服务器上,还是只在一侧?
另外,在客户端代码中,如何调用调用服务器函数的客户端对象?
在本教程中,我遵循这一行
$client = new HbaseClient($protocol);
他是怎么定义这个的class?
并且在 apache thrift tutorial 他在 python 客户端
中定义了相同的内容
# Create a client to use the protocol encoder
client = Calculator.Client(protocol)
Calculator对象是接口中标识的服务器提供的服务吗?同样的问题接口应该在客户端和服务器中??
请帮忙,我真的卡住了。
I am following this tutorial
以下是真实的:http://thrift.apache.org/tutorial/
the interface that's generated as file.thrift should be on client and server or only at one side?
起点是 IDL 文件。 IDL 表示接口定义语言,它只是一个文件,它描述了服务器和客户端之间的 API 契约。服务端的任务是实现合约中描述的接口,以便客户端调用。
要使用 IDL 文件,您 运行 Thruift 编译器可以为两端生成一些代码。如果服务器和客户端使用相同的语言(比如 Java),只需生成一次代码并在两个项目中使用它就足够了:
thrift -r -gen java MyApiContract.thrift
创建一个包含文件的 gen-java
文件夹。
如果服务端和客户端恰好是不同类型的代码(例如Java和PHP),那么您需要为它们生成代码:
thrift -r -gen java -gen php MyApiContract.thrift
这将生成两个文件夹,分别是gen-java
和gen-php
。
由于 Thrift 是一个跨平台、跨语言的框架,因此使用不同语言编写客户端和服务器并不罕见。
我正在制作一个 php 客户端,它通过 apache thrift 从 java 服务请求一个功能。我正在关注 tutorial 的 php 客户端代码。我需要了解一些东西,生成为 file.thrift 的接口应该在客户端和服务器上,还是只在一侧?
另外,在客户端代码中,如何调用调用服务器函数的客户端对象? 在本教程中,我遵循这一行
$client = new HbaseClient($protocol);
他是怎么定义这个的class?
并且在 apache thrift tutorial 他在 python 客户端
中定义了相同的内容# Create a client to use the protocol encoder
client = Calculator.Client(protocol)
Calculator对象是接口中标识的服务器提供的服务吗?同样的问题接口应该在客户端和服务器中??
请帮忙,我真的卡住了。
I am following this tutorial
以下是真实的:http://thrift.apache.org/tutorial/
the interface that's generated as file.thrift should be on client and server or only at one side?
起点是 IDL 文件。 IDL 表示接口定义语言,它只是一个文件,它描述了服务器和客户端之间的 API 契约。服务端的任务是实现合约中描述的接口,以便客户端调用。
要使用 IDL 文件,您 运行 Thruift 编译器可以为两端生成一些代码。如果服务器和客户端使用相同的语言(比如 Java),只需生成一次代码并在两个项目中使用它就足够了:
thrift -r -gen java MyApiContract.thrift
创建一个包含文件的 gen-java
文件夹。
如果服务端和客户端恰好是不同类型的代码(例如Java和PHP),那么您需要为它们生成代码:
thrift -r -gen java -gen php MyApiContract.thrift
这将生成两个文件夹,分别是gen-java
和gen-php
。
由于 Thrift 是一个跨平台、跨语言的框架,因此使用不同语言编写客户端和服务器并不罕见。