|
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 | +class EchoResponse(messages.Message): |
28 | 31 | """A proto Message that contains a simple string field."""
|
29 | 32 | content = messages.StringField(1)
|
30 | 33 | # [END messages]
|
31 | 34 |
|
32 | 35 |
|
| 36 | +ECHO_RESOURCE = endpoints.ResourceContainer( |
| 37 | + EchoRequest, |
| 38 | + n=messages.IntegerField(2, default=1)) |
| 39 | + |
| 40 | + |
33 | 41 | # [START echo_api]
|
34 | 42 | @endpoints.api(name='echo', version='v1')
|
35 | 43 | class EchoApi(remote.Service):
|
36 | 44 |
|
37 | 45 | @endpoints.method(
|
38 |
| - # This method takes an Echo message. |
39 |
| - Echo, |
| 46 | + # This method takes a ResourceContainer defined above. |
| 47 | + ECHO_RESOURCE, |
40 | 48 | # This method returns an Echo message.
|
41 |
| - Echo, |
| 49 | + EchoResponse, |
42 | 50 | path='echo',
|
43 | 51 | http_method='POST',
|
44 | 52 | name='echo')
|
45 | 53 | def echo(self, request):
|
46 |
| - return Echo(content=request.content) |
| 54 | + output_content = ' '.join([request.content] * request.n) |
| 55 | + return EchoResponse(content=output_content) |
| 56 | + |
| 57 | + @endpoints.method( |
| 58 | + # This method takes a ResourceContainer defined above. |
| 59 | + ECHO_RESOURCE, |
| 60 | + # This method returns an Echo message. |
| 61 | + EchoResponse, |
| 62 | + path='echo/{n}', |
| 63 | + http_method='POST', |
| 64 | + name='echo_path_parameter') |
| 65 | + def echo_path_parameter(self, request): |
| 66 | + output_content = ' '.join([request.content] * request.n) |
| 67 | + return EchoResponse(content=output_content) |
| 68 | + |
| 69 | + @endpoints.method( |
| 70 | + # This method takes a ResourceContainer defined above. |
| 71 | + ECHO_RESOURCE, |
| 72 | + # This method returns an Echo message. |
| 73 | + EchoResponse, |
| 74 | + path='echo', |
| 75 | + http_method='POST', |
| 76 | + name='echo_api_key', |
| 77 | + api_key_required=True) |
| 78 | + def echo_api_key(self, request): |
| 79 | + output_content = ' '.join([request.content] * request.n) |
| 80 | + return EchoResponse(content=output_content) |
47 | 81 |
|
48 | 82 | @endpoints.method(
|
49 | 83 | # This method takes an empty request body.
|
|
0 commit comments