首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不同的编程语言之间进行通信?

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

Stack Overflow用户
提问于 2018-12-06 09:49:10
回答 1查看 1.1K关注 0票数 0

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

代码语言:javascript
运行
复制
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。

代码语言:javascript
运行
复制
greet_in_javascript(name, greets) {
    // talk to my python api
    // return the result easily
}

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

EN

回答 1

Stack Overflow用户

发布于 2018-12-06 10:20:56

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

管道:

import sys

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

接口:

import flask, django

通过这种方法,您可以使用像flaskdjango这样的框架来定义端点(例如,example.com/api/my/endpoint),这些端点以一种对您的业务目的有意义的方式映射到您的应用程序接口。API设计太广泛了,我无法在这个答案中深入探讨(但在互联网上有比我更好的人,他们在这个主题上写得很好)。

编辑:

奖励: PubSub

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53643438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档