我已经为我的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
}
从一般意义上讲,两种语言如何互相交流?
答案 0 :(得分:0)
有两种非常流行的方法可以做到这一点,我可能会忽略一百万种其他答案。
import sys
在这里,您可以使用sys.stdin
和sys.stdout
在OS的帮助下读取程序的输入,然后输出结果。这两个都是Python中类似文件的对象,因此您可能已经熟悉如何使用它们。在js和node中,您有子进程和exec
等,它们可以对您的程序进行调用,例如cat file.txt | python myscript.py
import flask, django
通过这种方法,您可以使用flask
和django
之类的框架来定义端点(例如example.com/api/my/endpoint
),这些端点以对您的业务目的有意义的方式映射到您的API。 API设计对我来说太宽泛,无法深入研究这个答案(但在互联网上比我出色的人对此主题写得很出色。)
编辑:
我可能还应该提到PubSub,如果您使用的语言具有该PubSub系统的客户端,它会创建一个可以发布和订阅的消息系统。例如,这里是redis
https://redis.io/clients的所有客户端,而这里是redis pubsub https://redis.io/topics/pubsub