Serverless: APIG μ΄λ²€νŠΈλŠ” 이제 json 및 form-urlencoded ν…œν”Œλ¦Ώμ„ λͺ¨λ‘ κ°•μ œ μ‹€ν–‰ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 09μ›” 01일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: serverless/serverless

이것은 κΈ°λŠ₯ μ œμ•ˆμž…λ‹ˆλ‹€

μ„€λͺ…

APIG http 이벀트λ₯Ό μ •μ˜ν•  λ•Œ μ½”λ“œλŠ” 이제 application/json 및 application/x-www-form-urlencoded λͺ¨λ‘μ— λŒ€ν•œ 맀핑 생성을 κ°•μ œ μ‹€ν–‰ν•©λ‹ˆλ‹€. ν…œν”Œλ¦Ώμ„ μž¬μ •μ˜ν•  수 μžˆμ§€λ§Œ μ΄λŸ¬ν•œ 맀핑을 μ œμ™Έ ν•  수 μžˆλŠ” 방법은 μ—†μŠ΅λ‹ˆλ‹€(즉, λμ μ—μ„œ json μš”μ²­λ§Œ ν—ˆμš©ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€).

이 λ³€κ²½ 사항은 졜근 이 컀밋 을 톡해 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,
};

이 두 가지 μ˜΅μ…˜(및 ν…œν”Œλ¦Ώμ΄ 미리 μ •μ˜λ¨)을 κ°–λŠ” 것이 맀우 μœ μš©ν•˜λ‹€κ³  μƒκ°ν•˜μ§€λ§Œ μ‚¬μš©μžκ°€ μ›ν•˜λŠ” ν…œν”Œλ¦Ώλ§Œ μ„ νƒμ μœΌλ‘œ 포함할 수 μžˆλ„λ‘ ν•˜λŠ” 것이 κ°€μž₯ μ’‹μŠ΅λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같은 것이 μ˜λ―Έκ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

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 

APIG 톡과 λ™μž‘κ³Ό κ΄€λ ¨λœ ν˜„μž¬ λ―Έν•΄κ²° 문제(#1168)와 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ 보λ₯˜ 쀑인 PR(#1992)둜 인해 λ©”μ„œλ“œλ₯Ό μ›ν•˜λŠ” μ½˜ν…μΈ  μœ ν˜•μœΌλ‘œ μ™„μ „νžˆ μ œν•œν•  수 μžˆλ„λ‘ ν•˜λŠ” 것이 더 μ€‘μš”ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‚˜λŠ” κΈ°λ³Έ ν…œν”Œλ¦Ώμ„ μ‹€μ œλ‘œ μž κΈ€ 수 μžˆλ‹€λŠ” κΈ°λŠ₯의 아이디어λ₯Ό ν™•μ‹€νžˆ μ’‹μ•„ν•˜μ§€λ§Œ 전체 μ„œλΉ„μŠ€μ— λŒ€ν•΄ λ°œμƒν•΄μ•Ό ν•©λ‹ˆλ‹€.

κΈ°λ³Έ ν…œν”Œλ¦Ώμ„ μ™„μ „νžˆ 잠그렀면 μ„œλΉ„μŠ€ μ „μ²΄μ˜ λͺ¨λ“  λ°©λ²•μ—μ„œ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ λ‚˜λŠ” λ‹€μŒκ³Ό 같은 것을 μ„ ν˜Έν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

provider:
  apigateway:
    default-request-templates: false

그렇지 μ•ŠμœΌλ©΄ 미친 같은 ꡬ성을 λ³΅μ œν•΄μ•Ό ν•©λ‹ˆλ‹€(예λ₯Ό λ“€μ–΄ μ—¬λŸ¬ κΈ°λŠ₯에 λŒ€ν•΄ λ³„λ„μ˜ ν…œν”Œλ¦Ώμ„ μ„€μ •ν•˜λ €λŠ” 경우 이미 ν•„μš”ν•˜μ§€λ§Œ μš”μ²­ 데이터가 μžˆλŠ” μ΄λ²€νŠΈμ—λ§Œ ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— λ¬Έμ œκ°€ λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ 아직 ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ :D. @serverless/vip 이에 λŒ€ν•œ 생각이 μžˆμœΌμ‹  κ°€μš”? 특히

λͺ¨λ“  3 λŒ“κΈ€

λ‚˜λŠ” κΈ°λ³Έ ν…œν”Œλ¦Ώμ„ μ‹€μ œλ‘œ μž κΈ€ 수 μžˆλ‹€λŠ” κΈ°λŠ₯의 아이디어λ₯Ό ν™•μ‹€νžˆ μ’‹μ•„ν•˜μ§€λ§Œ 전체 μ„œλΉ„μŠ€μ— λŒ€ν•΄ λ°œμƒν•΄μ•Ό ν•©λ‹ˆλ‹€.

κΈ°λ³Έ ν…œν”Œλ¦Ώμ„ μ™„μ „νžˆ 잠그렀면 μ„œλΉ„μŠ€ μ „μ²΄μ˜ λͺ¨λ“  λ°©λ²•μ—μ„œ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ λ‚˜λŠ” λ‹€μŒκ³Ό 같은 것을 μ„ ν˜Έν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

provider:
  apigateway:
    default-request-templates: false

그렇지 μ•ŠμœΌλ©΄ 미친 같은 ꡬ성을 λ³΅μ œν•΄μ•Ό ν•©λ‹ˆλ‹€(예λ₯Ό λ“€μ–΄ μ—¬λŸ¬ κΈ°λŠ₯에 λŒ€ν•΄ λ³„λ„μ˜ ν…œν”Œλ¦Ώμ„ μ„€μ •ν•˜λ €λŠ” 경우 이미 ν•„μš”ν•˜μ§€λ§Œ μš”μ²­ 데이터가 μžˆλŠ” μ΄λ²€νŠΈμ—λ§Œ ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— λ¬Έμ œκ°€ λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ 아직 ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ :D. @serverless/vip 이에 λŒ€ν•œ 생각이 μžˆμœΌμ‹  κ°€μš”? 특히

이것은 μ§€κΈˆ κ°€λŠ₯ν•©λ‹ˆλ‹€: https://serverless.com/framework/docs/providers/aws/events/apigateway#custom -request-templates

@flomotlik μ‚¬μš©μž 지정 ν…œν”Œλ¦Ώμ€ application/json λŒ€ν•œ μ‚¬μš©μž 지정 ν…œν”Œλ¦Ώμ„ λ§Œλ“€ ν•„μš” 없이 κΈ°λ³Έ application/x-www-form-urlencoded ν…œν”Œλ¦Ώμ„ 선택 ν•΄μ œν•˜λŠ” OP μ‚¬μš© 사둀λ₯Ό μ–΄λ–»κ²Œ ν•΄κ²°ν•©λ‹ˆκΉŒ?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰