我为我的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.stdin
和sys.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