2424
2525
2626# [START messages]
27- class Echo (messages .Message ):
27+ class EchoRequest (messages .Message ):
28+ content = messages .StringField (1 )
29+
30+
31+ class EchoResponse (messages .Message ):
2832 """A proto Message that contains a simple string field."""
2933 content = messages .StringField (1 )
3034# [END messages]
3135
3236
37+ ECHO_RESOURCE = endpoints .ResourceContainer (
38+ EchoRequest ,
39+ n = messages .IntegerField (2 , default = 1 ))
40+
41+
3342# [START echo_api]
3443@endpoints .api (name = 'echo' , version = 'v1' )
3544class EchoApi (remote .Service ):
3645
3746 @endpoints .method (
38- # This method takes an Echo message .
39- Echo ,
47+ # This method takes a ResourceContainer defined above .
48+ ECHO_RESOURCE ,
4049 # This method returns an Echo message.
41- Echo ,
50+ EchoResponse ,
4251 path = 'echo' ,
4352 http_method = 'POST' ,
4453 name = 'echo' )
4554 def echo (self , request ):
46- return Echo (content = request .content )
55+ output_content = ' ' .join ([request .content ] * request .n )
56+ return EchoResponse (content = output_content )
57+
58+ @endpoints .method (
59+ # This method takes a ResourceContainer defined above.
60+ ECHO_RESOURCE ,
61+ # This method returns an Echo message.
62+ EchoResponse ,
63+ path = 'echo/{n}' ,
64+ http_method = 'POST' ,
65+ name = 'echo_path_parameter' )
66+ def echo_path_parameter (self , request ):
67+ output_content = ' ' .join ([request .content ] * request .n )
68+ return EchoResponse (content = output_content )
69+
70+ @endpoints .method (
71+ # This method takes a ResourceContainer defined above.
72+ ECHO_RESOURCE ,
73+ # This method returns an Echo message.
74+ EchoResponse ,
75+ path = 'echo' ,
76+ http_method = 'POST' ,
77+ name = 'echo_api_key' ,
78+ api_key_required = True )
79+ def echo_api_key (self , request ):
80+ output_content = ' ' .join ([request .content ] * request .n )
81+ return EchoResponse (content = output_content )
4782
4883 @endpoints .method (
4984 # This method takes an empty request body.
5085 message_types .VoidMessage ,
5186 # This method returns an Echo message.
52- Echo ,
87+ EchoResponse ,
5388 path = 'echo/getUserEmail' ,
5489 http_method = 'GET' ,
5590 # Require auth tokens to have the following scopes to access this API.
@@ -62,7 +97,7 @@ def get_user_email(self, request):
6297 # raise 401 Unauthorized.
6398 if not user :
6499 raise endpoints .UnauthorizedException
65- return Echo (content = user .email ())
100+ return EchoResponse (content = user .email ())
66101# [END echo_api]
67102
68103
0 commit comments