24
24
25
25
26
26
# [START messages]
27
- class Echo (messages .Message ):
27
+ class EchoRequest (messages .Message ):
28
+ content = messages .StringField (1 )
29
+
30
+
31
+ class EchoResponse (messages .Message ):
28
32
"""A proto Message that contains a simple string field."""
29
33
content = messages .StringField (1 )
30
34
# [END messages]
31
35
32
36
37
+ ECHO_RESOURCE = endpoints .ResourceContainer (
38
+ EchoRequest ,
39
+ n = messages .IntegerField (2 , default = 1 ))
40
+
41
+
33
42
# [START echo_api]
34
43
@endpoints .api (name = 'echo' , version = 'v1' )
35
44
class EchoApi (remote .Service ):
36
45
37
46
@endpoints .method (
38
- # This method takes an Echo message .
39
- Echo ,
47
+ # This method takes a ResourceContainer defined above .
48
+ ECHO_RESOURCE ,
40
49
# This method returns an Echo message.
41
- Echo ,
50
+ EchoResponse ,
42
51
path = 'echo' ,
43
52
http_method = 'POST' ,
44
53
name = 'echo' )
45
54
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 )
47
82
48
83
@endpoints .method (
49
84
# This method takes an empty request body.
50
85
message_types .VoidMessage ,
51
86
# This method returns an Echo message.
52
- Echo ,
87
+ EchoResponse ,
53
88
path = 'echo/getUserEmail' ,
54
89
http_method = 'GET' ,
55
90
# Require auth tokens to have the following scopes to access this API.
@@ -62,7 +97,7 @@ def get_user_email(self, request):
62
97
# raise 401 Unauthorized.
63
98
if not user :
64
99
raise endpoints .UnauthorizedException
65
- return Echo (content = user .email ())
100
+ return EchoResponse (content = user .email ())
66
101
# [END echo_api]
67
102
68
103
0 commit comments