0

我为我的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
}

在一般意义上,两种语言如何相互交谈?

4

1 回答 1

2

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

管道:

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。API 设计对我来说太宽泛了,无法在这个答案中深入研究(但在互联网上,有比我更好的人写过关于该主题的出色文章。)

编辑:

奖励:PubSub

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

于 2018-12-06T02:20:55.870 回答