我有一个谷歌可以指定我需要能够返回 aMaleResponseMessage
或 a 的方法FemaleResponseMessage
。有没有办法指定例如
@endpoints.method(message_types.VoidMessage, [MaleResponseMessage, FemaleResponseMessage])
当然可以选择声明一个超级消息类,例如,PersonResponseMessage
包装MaleResponseMessage
or 或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)
我不确定要检查什么???
。首先,我想到了isinstance
or type
。但我该怎么做呢?下面的工作吗?
class PersonResponse(messages.Message):
if type(Message()) == MaleResponseMessage :
item = messages.MessageField(MaleResponseMessage,1)
else:
item = messages.MessageField(FemaleResponseMessage,1)