標準化に適した形式の RPC を見つけようとしてきましたが、これまでにたくさんの壁にぶつかり、stackoverflow コミュニティのビューがどうなっているのか疑問に思っていました。
私の理想的な RPC は、次のものを提供します。
- サーバーを使用するためにカスタムスタックを作成する必要がないという点で、他の言語でのある程度の幅広いサポート
- 入力検証
- 理想的には、上記の入力検証を何らかの自動化されたドキュメントに変換して配布する方法
- クリーンで保守可能なコード
私はCatalystフレームワークのファンであり、それに固執することを好みますが、RPCサーバーの明らかに優れた代替手段があれば、それも受け入れます.
これまでのところ、次のことを見てきました。
Catalyst::Controller::SOAP は、複雑なデータ構造の戻りをサポートしていないようです。string('literals') のみです。その上でおそらくデータをシリアル化できますが、それは非常にハックなようです。また、事前に形成された XML オブジェクトを返すこともできますが、それを機能させることができませんでした。機能させるには、多くの SOAP データ構造を再作成する必要があるようです。
私は WSDL の考え方は好きですが、仕様全体が複雑であるため、他の言語との通信がどの程度サポートされるのか疑問に思っています。
XML ベースのカスタム POST コントローラー XML を ポストするディスパッチ URL がある場合に、他の 2 つのプロジェクトで最近行われているのと同様の方法で、独自のコントローラーを手動で作成しようとしました。これにより、XSD 検証/ドキュメントを作成できますが、現時点で維持したいよりも多くのコードを作成する必要がありました。
Catalyst::Plugin::Server::XMLRPC Catalyst の将来のバージョンで削除される非推奨のメソッドの使用について警告しました。入力の検証やドキュメントの作成はありませんが、それ以外は私が見つけた最高のものです
JSONRPC XMLRPC とよく似ているように見えますが、モジュールが実際に更新されているだけです。誰かがより良いものを提案しない限り、おそらく次はこれを使用しますJSONRPCを実行するCatalyst用の2つの異なるモジュールもあるようです