关于如何在Java和Python之间实现基于REST的交互的输入?

时间:2016-10-06 21:51:44

标签: java python rest api

我有一个 Java 进程,它与从我的程序用户界面调用的REST API进行交互。当我收到API调用时,我最终调用(非基于REST的) Python脚本,它执行大量工作并返回结果,这些结果作为API响应返回。 - 我想转换UI API的这种交互 - > JAVA - >调用python脚本成为端到端的REST,因此在未来的时间里,使用哪种语言而不是Python变得无关紧要。 - 有什么输入是最好的方式使端到端呼叫成为基于REST的?

2 个答案:

答案 0 :(得分:0)

此外,将来您可能希望将它们与同一台计算机分开,并使用网络进行通信。

您可以使用 http 请求。

在java中签订一个合同,你将提供给python脚本(或你将使用的任何其他语言)的输出将输出作为json发送到你的python脚本,这样你就可以很容易地改变语言当你发送相同的json。

答案 1 :(得分:0)

您可以使用Flask作为将Python脚本转换为微服务的包装器。然后,通过在REST调用中传递JSON字符串,从Java调用Python脚本。

对于每个python脚本,请侦听50,000-65,000之间的端口,然后将您的Java - > Python REST调用发送到http://127.0.0.1:50000http://127.0.0.1:50001等。

您可以在多大程度上分解代码,每个功能都是潜在的微服务。尝试将复杂性封装在类中,为这些类创建简单的接口,然后通过REST公开这些接口。作为一名Java程序员,我相信你对此没有任何问题!谷歌“烧瓶微服务示例”代码示例让您自己开始。

但是,如果您的Java应用程序在调用每个Python脚本之间没有阻塞,则会变得更加复杂。在这种情况下,您正在使用异步调用或为每个请求启动新线程。

(PS:有关微服务架构here的文章很好。)