Kat*_*lon 5 google-app-engine python-2.7 google-cloud-endpoints
我有一个google can enpoint方法,我需要能够返回a MaleResponseMessage或a FemaleResponseMessage.有没有办法指定诸如with
@endpoints.method(message_types.VoidMessage, [MaleResponseMessage, FemaleResponseMessage])
Run Code Online (Sandbox Code Playgroud)
当然可以选择声明一个超级消息类,比如,PersonResponseMessage包装MaleResponseMessage或者FemaleResponseMessage.但有什么类似于上面的片段?
编辑:
为了实现我自己的提议,我陷入困境.两种消息类型唯一的共同点是请求:完全相同的请求字段(带有额外的布尔值female=true/false)PersonRequest.在MaleResponseMessage与FemaleResponseMessage没有共同的领域.所以我使用一个端点方法,正如@bossylobster所示,我在哪里检查
if request.female : # request.female == True
return get_female(etc, etc)
else: # request.female == False // implies male
return get_male(etc,etc)
Run Code Online (Sandbox Code Playgroud)
对于回应,我需要类似的东西
class PersonResponse(messages.Message):
if ??? :
item = messages.MessageField(MaleResponseMessage,1)
else:
item = messages.MessageField(FemaleResponseMessage,1)
Run Code Online (Sandbox Code Playgroud)
我不知道该检查什么???.首先,我想到isinstance或type.但是我该怎么做?以下工作会怎样?
class PersonResponse(messages.Message):
if type(Message()) == MaleResponseMessage :
item = messages.MessageField(MaleResponseMessage,1)
else:
item = messages.MessageField(FemaleResponseMessage,1)
Run Code Online (Sandbox Code Playgroud)