私はグーグルがaMaleResponseMessage
またはのいずれかを返すことができる必要があるメソッドを指定することができFemaleResponseMessage
ます。それを指定する方法はありますか?
@endpoints.method(message_types.VoidMessage, [MaleResponseMessage, FemaleResponseMessage])
もちろん、スーパーメッセージクラスを宣言するオプションもあります。たとえば、またはのいずれかPersonResponseMessage
をラップします。しかし、上記のスニペットに似たものはありますか?MaleResponseMessage
FemaleResponseMessage
編集:
自分の提案を実行しようとして、行き詰まりました。2つのメッセージタイプに共通するのはリクエストだけです。まったく同じリクエストフィールド(追加のブール値をfemale=true/false
含む)PersonRequest
。MaleResponseMessage
とにFemaleResponseMessage
は共通のフィールドがありません。だから私は@bossylobsterが示すように、1つのエンドポイントメソッドを使用しています。
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
まず、またはについて考えましtype
た。しかし、どうすればよいでしょうか。以下は機能しますか?
class PersonResponse(messages.Message):
if type(Message()) == MaleResponseMessage :
item = messages.MessageField(MaleResponseMessage,1)
else:
item = messages.MessageField(FemaleResponseMessage,1)