Skip to content

Latest commit

Β 

History

History
39 lines (24 loc) Β· 2.39 KB

restapi.md

File metadata and controls

39 lines (24 loc) Β· 2.39 KB

RESTful

μΆ”ν›„ 기재

REST APIλ₯Ό μ‚¬μš©ν•˜λŠ” 이유

REST APIλ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ μ™€ RESTful함에 λŒ€ν•΄μ„œλŠ” ν† μ΄ν”„λ‘œμ νŠΈλ‚˜ λ©΄μ ‘ μ€€λΉ„λ₯Ό ν•˜λ©΄μ„œ λŒ€κ°• 곡뢀 ν–ˆμ—ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 직접 ν•˜λ‚˜μ˜ μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€λ©΄μ„œ REST APIλ₯Ό μ •μ˜ν•΄λ³΄λŠ” κ²½ν—˜μ€ 이번이 μ²˜μŒμ΄μ–΄μ„œ

μ™œ REST APIλ₯Ό μ‚¬μš©ν•˜κ³  λͺ…μ„Έμ„œλ₯Ό μž‘μ„±ν•΄μ•Όν•˜λŠ”κ°€? 에 λŒ€ν•œ 의문점이 μžˆμ—ˆλ‹€.

μ§€κΈˆκΉŒμ§€ λŠλ‚€λ°”λ‘œλŠ”

  • ν”„λ‘ νŠΈμ—”λ“œμ™€ λ°±μ—”λ“œλ₯Ό 뢄리할 수 μžˆλ‹€λŠ” 것.
  • μ΄λŠ” κ΅¬ν˜„μƒμ˜ μ΄μŠˆμ™€ μ›ν™œν•œ ν˜‘μ—…μ—μ„œ 큰 μž₯점을 μ§€λ‹Œλ‹€.

이 κ°€μž₯ 큰 μ΄μœ μ˜€λ‹€.

REST API λͺ…μ„Έμ„œλ₯Ό μž‘μ„±ν•˜λŠ” 이유

μ§€κΈˆκΉŒμ§€ λ‚˜μ˜ 개발 κ²½ν—˜μ€ 개인 ν”„λ‘œμ νŠΈκ°€ μ£Όκ°€ λ˜μ—ˆμœΌλ―€λ‘œ κ·Έλƒ₯ μ„œλ²„λ‹¨μ— ν”„λ‘ νŠΈ μš”μ†Œλ“€κ³Ό λ°±μ—”λ“œ μš”μ†Œλ“€μ„ μ„žμ–΄λ‘μ–΄λ„ λ‚΄κ°€ λ‹€ μ•ŒκΈ° λ•Œλ¬Έμ— λ¬Έμ œκ°€ μ—†μ—ˆλ‹€.

λ‹€λ§Œ ν˜‘μ—…μ„ ν•˜λŠ” 과정에 μžˆμ–΄μ„œλŠ” ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμžλ“€κ³Ό λ°±μ—”λ“œ κ°œλ°œμžλ“€μ΄ λ”°λ‘œ μΌν•˜κΈ° λ•Œλ¬Έμ—

ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμžλ“€μ΄ μ„œλ²„μ— μš”μ²­μ„ 보내면 λ°›μ•„μ˜€λŠ” κ²°κ³Ό κ°’(json이 λŒ€ν‘œμ )만 보고 상황을 κ°„λ‹¨νžˆ μœ μΆ”ν•  수 μžˆλŠ” μ‹œμŠ€ν…œμ΄ ν•„μš”ν–ˆλ‹€.

μ΄λŠ” μΆ”ν›„ μŠ€ν”„λ§μ„ μ΄μš©ν•΄μ„œ κ°œλ°œμ„ 진행할 λ•Œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 데에도 이점을 쀄 것 κ°™λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€ (κ°„λ‹¨ν•˜κ²Œ 응닡 값을 λΉ„κ΅ν•˜λ©΄ λ˜λ‹ˆκΉŒ?)

μŠ€ν”„λ§μ„ μ΄λ²ˆμ— 처음 μ ‘ν•΄λ³΄λŠ” 터라 μ»¨νŠΈλ‘€λŸ¬μ™€ 도메인 κ°„μ˜ μ˜μ‘΄μ„± 섀계λ₯Ό μ–΄λ–»κ²Œ ν•΄μ•Όν•˜λ‚˜.. 고민을 ν–ˆμ—ˆλŠ”λ°

REST API λͺ…μ„Έμ„œλ₯Ό μž‘μ„±ν•΄λ³΄λ‹ˆκΉŒ 각 도메인에 ν•΄λ‹Ήν•˜λŠ” 각 HTTP λ©”μ†Œλ“œλ§ˆλ‹€ 컨트둀러λ₯Ό λ§Œλ“€μ–΄ κ΅¬ν˜„ν•˜λ©΄ λ˜κ² λ‹€λŠ” κ³„νšμ΄ μ„Έμ›Œμ‘Œλ‹€.

μŠ€ν”„λ§ μ»¨νŠΈλ‘€λŸ¬μ— 적용

λ§Œμ•½ 본인이 μŠ€ν”„λ§μ„ μ΄μš©ν•΄μ„œ κ°œλ°œν•˜κ³  μžˆλ‹€λ©΄, 컨트둀러λ₯Ό κ΅¬ν˜„ν•  λ•Œ REST API λͺ…μ„Έμ„œλ₯Ό μž‘μ„±ν•΄ λ†“μ•˜λ‹€λ©΄ 큰 도움을 얻을 수 μžˆμ„ 것 κ°™λ‹€.

  • 각 api λ©”μ†Œλ“œ 호좜 λ§ˆλ‹€ 컨트둀러λ₯Ό λ§Œλ“€μ–΄μ£Όμ–΄μ•Ό ν•œλ‹€.

    • μ΄λ•Œ annotation으둜 λ©”μ†Œλ“œμ— 따라 @GetMapping @PatchMapping λ“± λ‹€λ₯΄κ²Œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.
  • λ§Œμ•½ patch ~/api/adGroups/{adGroup_id}/policy μ΄λŸ°μ‹μ˜ api 호좜이 μžˆλ‹€λ©΄, μŠ€ν”„λ§μ—μ„œλŠ”

    • @PatchMapping("api/adGroups/{id}/policy")
    • μ΄λŸ°μ‹μœΌλ‘œ annotation을 μ •μ˜ν•˜λ©΄ id 값을 νŒŒλΌλ―Έν„°λ‘œ 받을 수 μžˆλ‹€.