gpt4 book ai didi

java - 第一个使用 Apache Thrift 的程序——我应该在哪里定义接口(interface)?在客户端或服务器代码中

转载 作者:搜寻专家 更新时间:2023-10-31 20:58:28 24 4
gpt4 key购买 nike

我正在制作一个 php 客户端,它通过 apache thrift 从 java 服务请求一个函数。我正在关注这个 tutorial对于 php 客户端代码。我需要了解一些东西,作为 file.thrift 生成的接口(interface)应该在客户端和服务器上,还是只在一侧?

另外,在客户端代码中,我如何调用调用服务器函数的客户端对象?在本教程中,我遵循这一行

$client = new HbaseClient($protocol);

他是怎么定义这个类的?

apache thrift tutorial 中他在 python 客户端中定义了相同的内容

# Create a client to use the protocol encoder
client = Calculator.Client(protocol)

Calculator 对象是接口(interface)中标识的服务器提供的服务吗?同样的问题,接口(interface)应该在客户端和服务器中??

请帮忙,我真的卡住了。

最佳答案

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 的意思是接口(interface)定义语言,它只是一个文件,它描述了服务器和客户端之间的 API 契约。服务端的任务是实现合约中描述的接口(interface),以便客户端调用。

要使用 IDL 文件,您需要运行 Thruift 编译器为两端生成一些代码。如果服务器和客户端使用相同的语言(比如 Java),只需生成一次代码并在两个项目中使用它就足够了:

  thrift -r -gen java MyApiContract.thrift

创建一个包含文件的 gen-java 文件夹。

如果碰巧服务端和客户端是不同类型的代码(例如Java和PHP),那么你需要为它们生成代码:

  thrift -r -gen java -gen php MyApiContract.thrift

这将生成两个文件夹,分别是gen-javagen-php

由于 Thrift 是一个跨平台、跨语言的框架,因此使用不同语言编写客户端和服务器并不罕见。

关于java - 第一个使用 Apache Thrift 的程序——我应该在哪里定义接口(interface)?在客户端或服务器代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49997036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com