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

しかし、私の API を使用できるのは Python 開発者だけです。

私がやりたいことは同じですが、javascript のような別の言語を使用し、Python からコード全体を書き直す必要はありません。JavaScript がこの Python API と通信して実行し、結果を取得して、JavaScript 開発者も私の API を使用できるようにする方法が必要だと思いました。

greet_in_javascript(name, greets) {
    // talk to my python api
    // return the result easily
}

一般的な意味で、どのようにして 2 つの言語が互いに会話できるのでしょうか?

4

1 に答える 1

2

これを行うには 2 つの非常に一般的な方法があり、おそらく他にも 100 万通りの方法がありますが、私の回答ではそれらを無視します。

パイプ:

import sys

ここで、OS の助けを借りてプログラムの入力を読み取り、結果を出力しますsys.stdinsys.stdoutこれらはどちらも Python のファイルに似たオブジェクトなので、使用方法については既によく知っているでしょう。jsとノードにはexec、プログラムへの呼び出しを行うことができる子プロセスなどがあります。cat file.txt | python myscript.py

API:

import flask, django

このアプローチでは、flask&のようなフレームワークを使用して、ビジネス目的に適した方法で API にマップdjangoするエンドポイント (例: ) を定義できます。example.com/api/my/endpointAPI の設計は広範すぎて、この回答で掘り下げることはできません (ただし、このトピックについて見事に書いたインターネット上には、私よりもはるかに優れた人々がいます)。

編集:

ボーナス: PubSub

PubSub システムのクライアントを持つ言語を使用している場合は、パブリッシュおよびサブスクライブできるメッセージ システムを作成する PubSub についても言及する必要があります。たとえば、ここにredis https://redis.io/clientsのすべてのクライアントがあり、ここに redis pubsub https://redis.io/topics/pubsubがあります

于 2018-12-06T02:20:55.870 に答える