0

アプリ エンジンの protorpc サービスで使用したいいくつかのメッセージ タイプを定義しましたが、messages.Field インスタンスではなくメソッドであるメンバーを検索しているため、サービスはエラーをスローします。これを回避する方法はありますか?メッセージにメソッドを定義することは本当に便利だからです。私の例では、資格情報メッセージがあり、メッセージで資格情報が正しいかどうかを確認するメソッドを定義しました。メソッドを関数として定義できることはわかっていますが、論理的ではありません。

4

1 に答える 1

1

ProtoRPC の目標の 1 つは、可能な限りプロトコル バッファの実装に忠実であることです。.proto 表記を使用してプロトコル バッファを記述しても、メソッド定義は許可されません。したがって、メソッドを定義できたとしても、.proto ファイルとして正しく表現できないクラスになってしまうでしょう。余談ですが、開発者がメッセージ クラスとクライアント/サーバー機能を明確に区別できるようになることが期待されます。

また、将来の変更 (プロトコル バッファー メカニズムのサポートの追加など) が必要になった場合に、古いバージョンとの互換性を損なうことなく簡単に変更できるように、多くの努力を払いました。ライブラリは App Engine ランタイムに組み込むことを目的としているため、開発者がアップグレードする準備ができたときではなく、App Engine の新しいバージョンがリリースされたときにライブラリが自動的に更新されます。メッセージに追加できるものを制限することで、将来のライブラリの拡張に対する柔軟性が向上します (実際には、ライブラリのユーザーが犠牲になります)。

于 2013-06-17T16:52:40.523 に答える