サーバーサイドPythonからJavaScriptクライアントコードを自動的に生成する良い方法はありますか
-
23-09-2019 - |
質問
基本的に次のことができるようにしたいです。
- Python でいくつかの関数を作成します (追加のメタデータは最小限に抑えます)
- これらの機能を Web サービスに変換します (最小限の労力/定型文で)
- rpc 用のいくつかの JavaScript 関数 / オブジェクトを自動的に生成します (これにより、メソッド名の入力ミス、メソッド名を忘れる、間違った数の引数を渡すなどの愚かな行為をできるだけ防ぐことができます)
例
パイソン:
def hello_world():
return "Hello world"
JavaScript:
...
<!-- This file is automatically generated (either dynamically or statically) -->
<script src="http://myurl.com/webservice/client_side_javascript"> </script>
...
<script>
$('#button').click(function () {
hello_world(function (data){ $('#label').text(data)))
}
</script>
少し調査したところ、これに近いアプローチがいくつか示されました。
Python の小さな定型コードを使用した関数から json-rpc サービスを自動生成し、jquery と json を使用して呼び出しを実行します (それでもメソッド名を間違えやすいため、呼び出し時に URL に注意する必要があり、非常にイライラします)これらの呼び出しは自分で Firebug シェルに記述します)
soaplib のようなライブラリを使用して、Python から wsdl を生成します (大量の型情報を追加することによって)。そして、どういうわけかこれをJavaScriptに変換します(これを行うライブラリがあるかどうかはわかりません)
しかし、私が望むものに近いアプローチはあるでしょうか?
正しい解決策はありません
他のヒント
それはjavascriptのXMLのRPCクライアントを使用してのように見えます(このためのjQueryのプラグインがある)に行くには良い方法です。
jQueryプラグインは、あなたのRPCサービスをイントロスペクトし、それが不可能なミスが早期に警告を得ることなく、メソッド呼び出しの名前を入力するようにしてくださいメソッド名を移入します。それはしかし、あなたが渡すこと引数の数、またはその種類をテストしません。
JSON RPCにイントロスペクションのために同じサポートがあるように思えません(というか一貫標準があるように思えません)。また、この手法は、ジャンゴで使用することができます。
私は一緒にいくつかのサンプルコードを入れてここにアップロードしました(私はそのリンクを願っています自分のブログの記事にひどい形とはみなされません - インターネットの簡単検索は)だった示唆していないようでした...