Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit aa8a463

Browse filesBrowse files
bradfriedmandpebot
authored andcommitted
Flesh out Endpoints quickstart into a tutorial app (GoogleCloudPlatform#651)
1 parent ecd5f1f commit aa8a463
Copy full SHA for aa8a463

File tree

Expand file treeCollapse file tree

2 files changed

+44
-7
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+44
-7
lines changed

‎appengine/standard/endpoints-frameworks-v2/echo/app.yaml

Copy file name to clipboardExpand all lines: appengine/standard/endpoints-frameworks-v2/echo/app.yaml
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
runtime: python27
22
threadsafe: true
33
api_version: 1
4+
basic_scaling:
5+
max_instances: 2
46

57
#[START_EXCLUDE]
68
skip_files:

‎appengine/standard/endpoints-frameworks-v2/echo/main.py

Copy file name to clipboardExpand all lines: appengine/standard/endpoints-frameworks-v2/echo/main.py
+42-7Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,32 +24,67 @@
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')
3544
class 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

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.