@@ -49,7 +49,7 @@ npm i --save dynamodb node-uuid
4949
5050##### Step 5: Implement the lambda function
5151
52- Open ` blog/post/handler.js ` and enter the following code:
52+ Open [ blog/post/handler.js] ( ../master/blog/post/handler.js ) and enter the following code:
5353
5454``` javascript
5555' use strict' ;
@@ -119,74 +119,15 @@ Create [blog/post/s-templates.json](../master/blog/post/s-templates.json):
119119 }
120120 }
121121 },
122- "apiRequestPostReadTemplate" : {
123- "application/json" : {
124- "operation" : " read" ,
125- "tableName" : " blog-posts" ,
126- "payload" : {
127- "Key" : {
128- "postId" : " $input.params('postId')"
129- }
130- }
131- }
132- },
133- "apiRequestPostUpdateTemplate" : {
134- "application/json" : {
135- "operation" : " update" ,
136- "tableName" : " blog-posts" ,
137- "payload" : {
138- "Key" : {
139- "postId" : " $input.params('postId')"
140- },
141- "UpdateExpression" : " set content = :c" ,
142- "ExpressionAttributeValues" : {
143- ":c" : " $input.json('$')"
144- }
145- }
146- }
147- },
148- "apiRequestPostDeleteTemplate" : {
149- "application/json" : {
150- "operation" : " delete" ,
151- "tableName" : " blog-posts" ,
152- "payload" : {
153- "Key" : {
154- "postId" : " $input.params('postId')"
155- },
156- "ConditionExpression" : " postId = :p" ,
157- "ExpressionAttributeValues" : {
158- ":p" : " $input.params('postId')"
159- }
160- }
161- }
162- },
163- "apiRequestPostListTemplate" : {
164- "application/json" : {
165- "operation" : " list" ,
166- "tableName" : " blog-posts" ,
167- "payload" : {}
168- }
169- },
170- "apiResponsePostCreateTemplate" : " {\" postId\" :\" $input.path('$').postId\" }" ,
171- "apiResponsePostReadTemplate" : " {\" post\" : {\" postId\" :\" $input.path('$').Item.postId\" , \" content\" :{\" user\" :\" $input.path('$').Item.content.user\" ,\" message\" :\" $input.path('$').Item.content.message\" }}}" ,
172- "apiResponsePostListTemplate" : " {\" posts\" : [#foreach($post in $input.path('$').Items){\" postId\" : \" $post.postId\" ,\" content\" : { \" user\" :\" $post.content.user\" ,\" message\" :\" $post.content.message\" }}#if($foreach.hasNext),#end #end ] }"
122+ ...
173123}
174124```
175125
176126Open [ blog/post/s-function.json] ( ../master/blog/post/s-function.json ) :
177127
178128``` json
179129{
180- "name" : " post" ,
181- "customName" : false ,
182- "customRole" : false ,
183- "handler" : " post/handler.handler" ,
184- "timeout" : 6 ,
185- "memorySize" : 1024 ,
186- "custom" : {
187- "excludePatterns" : [],
188- "envVars" : []
189- },
130+ ...
190131 "endpoints" : [
191132 {
192133 "path" : " post" ,
@@ -212,99 +153,6 @@ Open [blog/post/s-function.json](../master/blog/post/s-function.json):
212153 }
213154 }
214155 },
215- {
216- "path" : " post" ,
217- "method" : " POST" ,
218- "type" : " AWS" ,
219- "authorizationType" : " none" ,
220- "apiKeyRequired" : false ,
221- "requestParameters" : {},
222- "requestTemplates" : " $${apiRequestPostCreateTemplate}" ,
223- "responses" : {
224- "400" : {
225- "statusCode" : " 400"
226- },
227- "default" : {
228- "statusCode" : " 200" ,
229- "responseParameters" : {},
230- "responseModels" : {},
231- "responseTemplates" : {
232- "application/json" : " $${apiResponsePostCreateTemplate}"
233- }
234- }
235- }
236- },
237- {
238- "path" : " post" ,
239- "method" : " PUT" ,
240- "type" : " AWS" ,
241- "authorizationType" : " none" ,
242- "apiKeyRequired" : false ,
243- "requestParameters" : {
244- "integration.request.querystring.postId" : " method.request.querystring.postId"
245- },
246- "requestTemplates" : " $${apiRequestPostUpdateTemplate}" ,
247- "responses" : {
248- "400" : {
249- "statusCode" : " 400"
250- },
251- "default" : {
252- "statusCode" : " 200" ,
253- "responseParameters" : {},
254- "responseModels" : {},
255- "responseTemplates" : {
256- "application/json" : " "
257- }
258- }
259- }
260- },
261- {
262- "path" : " post" ,
263- "method" : " DELETE" ,
264- "type" : " AWS" ,
265- "authorizationType" : " none" ,
266- "apiKeyRequired" : false ,
267- "requestParameters" : {
268- "integration.request.querystring.postId" : " method.request.querystring.postId"
269- },
270- "requestTemplates" : " $${apiRequestPostDeleteTemplate}" ,
271- "responses" : {
272- "400" : {
273- "statusCode" : " 400"
274- },
275- "default" : {
276- "statusCode" : " 200" ,
277- "responseParameters" : {},
278- "responseModels" : {},
279- "responseTemplates" : {
280- "application/json" : " "
281- }
282- }
283- }
284- },
285- {
286- "path" : " posts" ,
287- "method" : " GET" ,
288- "type" : " AWS" ,
289- "authorizationType" : " none" ,
290- "apiKeyRequired" : false ,
291- "requestParameters" : {},
292- "requestTemplates" : " $${apiRequestPostListTemplate}" ,
293- "responses" : {
294- "400" : {
295- "statusCode" : " 400"
296- },
297- "default" : {
298- "statusCode" : " 200" ,
299- "responseParameters" : {},
300- "responseModels" : {},
301- "responseTemplates" : {
302- "application/json" : " $${apiResponsePostListTemplate}"
303- }
304- }
305- }
306- }
307- ],
308- "events" : []
156+ ...
309157}
310158```
0 commit comments