我为我的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
}
在一般意义上,两种语言如何相互对话?
发布于 2018-12-06 10:20:56
有两种非常流行的方法可以做到这一点,另外可能还有一百万种我在回答时会忽略的方法。
管道:
import sys
在这里,您可以使用sys.stdin
和sys.stdout
在操作系统的帮助下读取程序的输入,然后输出结果。这两个对象在Python中都是类似文件的对象,因此您可能已经熟悉了如何使用它们。在js和node中,您有子进程和exec
等,它们可以调用您的程序,例如cat file.txt | python myscript.py
接口:
import flask, django
通过这种方法,您可以使用像flask
和django
这样的框架来定义端点(例如,example.com/api/my/endpoint
),这些端点以一种对您的业务目的有意义的方式映射到您的应用程序接口。API设计太广泛了,我无法在这个答案中深入探讨(但在互联网上有比我更好的人,他们在这个主题上写得很好)。
编辑:
奖励: PubSub
我可能还应该提到PubSub,它创建了一个消息系统,您可以发布和订阅该消息系统,前提是您使用的语言具有用于该PubSub系统的客户端。例如,这里是redis
https://redis.io/clients的所有客户端,这里是redis pubsub https://redis.io/topics/pubsub
https://stackoverflow.com/questions/53643438
复制相似问题