Python 端点原型数据存储:返回不同的类,然后返回输入类
我希望有一个端点,它获取特定类型的对象并返回不同类型的对象,而不是让它们具有相同的类型 例如:Python 端点原型数据存储:返回不同的类,然后返回输入类,python,google-app-engine,google-cloud-endpoints,endpoints-proto-datastore,Python,Google App Engine,Google Cloud Endpoints,Endpoints Proto Datastore,我希望有一个端点,它获取特定类型的对象并返回不同类型的对象,而不是让它们具有相同的类型 例如: class SomeClass(EndpointsModel): name = ndb.StringProperty() class OtherClass(EndpointsModel): otherName = ndb.StringProperty() @SomeClass.method(path='mymodel', http_method='POST', name='mymo
class SomeClass(EndpointsModel):
name = ndb.StringProperty()
class OtherClass(EndpointsModel):
otherName = ndb.StringProperty()
@SomeClass.method(path='mymodel', http_method='POST', name='mymodel.insert')
def MyModelInsert(self, my_model):
my_model.put()
otherModel = OtherClass(otherName='someothername')
return otherModel
目前我得到:
ServerError (Method MyApi.MyModelInsert expected response type <class '.SomeClass'>, sent <class '.OtherClass'>)
ServerError(方法MyApi.mymodelsert预期响应类型,已发送)
有没有办法使输入类与返回类不同 您可以在方法装饰器中提供
response\u message
参数,但该参数必须是ProtoRPC消息类,而不是EndpointsModel
您可以通过ProtoModel
classmethod从EndpointsModel获取消息类
而且您必须从方法返回ProtoRPC消息,而不是EndpointsModel,因为库不会自动为自定义响应类进行对话。您可以使用模型的ToMessage
方法执行此操作
总结一下,您将有以下代码(未测试):
@SomeClass.method(path='mymodel',
http_method='POST',
name='mymodel.insert'
response_message=OtherClass.ProtoModel())
def MyModelInsert(self, my_model):
my_model.put()
otherModel = OtherClass(otherName='someothername')
return otherModel.ToMessage()