我有一个谷歌可以指定我需要能够返回 aMaleResponseMessage或 a 的方法FemaleResponseMessage。有没有办法指定例如
@endpoints.method(message_types.VoidMessage, [MaleResponseMessage, FemaleResponseMessage])
当然可以选择声明一个超级消息类,例如,PersonResponseMessage包装MaleResponseMessageor 或FemaleResponseMessage. 但是有什么类似于上面的片段吗?
编辑:
试图实施我自己的建议,我被卡住了。这两种消息类型的唯一共同点是请求:female=true/false对于PersonRequest. theMaleResponseMessage和 theFemaleResponseMessage没有共同的领域。所以我使用一种端点方法,正如@bossylobster 所示,我在其中检查
if request.female : # request.female == True
return get_female(etc, etc)
else: # request.female == False // implies male
return get_male(etc,etc)
对于回应,我需要类似的东西
class PersonResponse(messages.Message):
if ??? :
item = messages.MessageField(MaleResponseMessage,1)
else:
item = messages.MessageField(FemaleResponseMessage,1)
我不确定要检查什么???。首先,我想到了isinstanceor type。但我该怎么做呢?下面的工作吗?
class PersonResponse(messages.Message):
if type(Message()) == MaleResponseMessage :
item = messages.MessageField(MaleResponseMessage,1)
else:
item = messages.MessageField(FemaleResponseMessage,1)