如何在不同的编程语言之间进行通信



我为我的python代码写了一个api,如下所示:

def greet_in_python(name, greets="Hello"):
## in real life this implementation may be more complex and has other **python** dependencies
....
return greets + " " + name

但只有python开发人员才能使用我的api。

我想做的是同样的事情,但使用不同的语言,比如javascript,并且不需要从python重写整个代码。我认为javascript必须有一种方法来与这个python api通信,执行它,并获得结果,这样javascript开发人员也可以使用我的api。

greet_in_javascript(name, greets) {
// talk to my python api
// return the result easily
}

从一般意义上讲,两种语言如何相互交流?

有两种非常流行的方法可以做到这一点,我在回答中可能会忽略其他一百万种方法。

管道:

import sys

在这里,您可以使用sys.stdinsys.stdout在操作系统的帮助下读取程序的输入,然后输出结果。这两个对象在Python中都是类似文件的对象,所以您可能已经熟悉如何使用它们了。在js和node中,您有子进程和exec等等,它们可以调用您的程序,例如cat file.txt | python myscript.py

API:

import flask, django

通过这种方法,您可以使用类似flask&django定义端点(例如example.com/api/my/endpoint(,这些端点以对您的业务目标有意义的方式映射到您的API。API的设计太宽泛了,我无法深入研究这个答案(但在互联网上有比我更好的人,他们在这个主题上写得很精彩。(

编辑:

奖金:PubSub

我可能还应该提到PubSub,它创建了一个可以发布和订阅的消息系统,前提是您使用的语言具有该PubSub系统的客户端。例如,以下是redis的所有客户端https://redis.io/clients这是redis pubsubhttps://redis.io/topics/pubsub

相关内容

  • 没有找到相关文章

最新更新