Serverless: APIG рдИрд╡реЗрдВрдЯ рдЕрдм json рдФрд░ рдлреЙрд░реНрдо-urlencoded рдЯреЗрдореНрдкреНрд▓реЗрдЯ рджреЛрдиреЛрдВ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рд╕рд┐рддре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: serverless/serverless

рдпрд╣ рдПрдХ рдлреАрдЪрд░ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ

рд╡рд┐рд╡рд░рдг

APIG http рдИрд╡реЗрдВрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреЛрдб рдЕрдм application/json рдФрд░ рд╕рд╛рде рд╣реА application/x-www-form-urlencoded рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрди рдореИрдкрд┐рдВрдЧ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ (рдпрд╛рдиреА, рдореИрдВ рдХреЗрд╡рд▓ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ рдЬреЗрд╕рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ)

рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ lib/plugins/aws/deploy/compile/events/apiGateway/lib/methods.js рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ :

const integrationRequestTemplates = {
  'application/json': DEFAULT_JSON_REQUEST_TEMPLATE,
  'application/x-www-form-urlencoded': DEFAULT_FORM_URL_ENCODED_REQUEST_TEMPLATE,
};

рдЬрдмрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди 2 рд╡рд┐рдХрд▓реНрдкреЛрдВ (рдФрд░ рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕) рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдЙрди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╡реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рдХреБрдЫ рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ:

functions:
  create:
    handler: posts.create
    events:
      - http:
          method: get
          path: whatever
          request:
            template:
              text/xhtml: { "stage" : "$context.stage" }   # add additional template
              application/json: { "httpMethod" : "$context.httpMethod" }  # add mapping and override default template
              application/x-www-form-urlencoded: true    # add mapping and use default template 

рдПрдкреАрдЖрдИрдЬреА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рдореМрдЬреВрджрд╛ рдЦреБрд▓реЗ рдореБрджреНрджреЗ (#1168) рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмрд┐рдд рдкреАрдЖрд░ (#1992), рд╡рд╛рдВрдЫрд┐рдд рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реЙрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдореЗрдВ рд╣рд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдкрд╕рдВрдж рд╣реИ

provider:
  apigateway:
    default-request-templates: false

рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдкрд╛рдЧрд▓реЛрдВ рдХреА рддрд░рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд░реВрд░реА рд╣реИ рдЬрдм рдЖрдк рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рддрдХ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ: рдбреАред @ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд/рд╡реАрдЖрдИрдкреА рдЙрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ @ рд╣рд╛рдЗрдкрд░рдмреНрд░реЗрди ?

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реЙрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдореЗрдВ рд╣рд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдкрд╕рдВрдж рд╣реИ

provider:
  apigateway:
    default-request-templates: false

рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдкрд╛рдЧрд▓реЛрдВ рдХреА рддрд░рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд░реВрд░реА рд╣реИ рдЬрдм рдЖрдк рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рддрдХ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ: рдбреАред @ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд/рд╡реАрдЖрдИрдкреА рдЙрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ @ рд╣рд╛рдЗрдкрд░рдмреНрд░реЗрди ?

рдпрд╣ рдЕрдм рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: https://serverless.com/framework/docs/providers/aws/events/apigateway#custom -request-templates

@flomotlik application/json рд▓рд┐рдП рдХрд╕реНрдЯрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ application/x-www-form-urlencoded рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдУрдкреА рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЗ рдХреЛ рдХрд╕реНрдЯрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреИрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

kevindiamond picture kevindiamond  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chris-hailstorm picture chris-hailstorm  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gandhi-jay picture gandhi-jay  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

horike37 picture horike37  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arabold picture arabold  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ