我已经定义了一些我想在app引擎上的protorpc服务中使用的消息类型,但服务因为发现成员是方法而不是messages.Field实例而引发错误。有办法解决这个问题吗?因为在消息上定义方法非常有用。在我的示例中,我有一个凭据消息,并且我已经定义了一种方法来检查消息上的凭据是否正确。我知道我可以将方法定义为函数,但它只是不那么合理。
答案 0 :(得分:1)
ProtoRPC的目标之一是尽可能忠实于协议缓冲区的实现。使用.proto表示法编写协议缓冲区不允许方法定义。因此,如果可以定义方法,那么最终会出现无法正确表示为.proto文件的类。另外,希望是它使开发人员能够明确区分他们的消息类和客户端/服务器功能。
我们还经过了很多努力,以确保如果我们需要进行未来的更改(例如添加对协议缓冲机制的支持),那么在不破坏与旧版本的兼容性的情况下更容易实现。由于它旨在内置到App Engine运行时,因此在发布新版本的App Engine时会自动更新库,而不是在开发人员准备升级时。现在,限制可以添加到消息中的内容可以让库在将来增加灵活性(实际上,这会牺牲库的用户)。