Skip to content

Latest commit

Β 

History

History
62 lines (46 loc) Β· 2.85 KB

File metadata and controls

62 lines (46 loc) Β· 2.85 KB

✏️ RESTful API

REST의 뜻이 λ¬΄μ—‡μΈκ°€μš”?

HTTP URI λ₯Ό 톡해 μžμ›(Resource)을 λͺ…μ‹œν•˜κ³  HTTP Methodλ₯Ό 톡해 ν•΄λ‹Ή μžμ›μ— λŒ€ν•œ CRUD μž‘μ—…μ„ μ μš©ν•˜λŠ” κ²ƒμœΌλ‘œ μ›Ή μ„œλΉ„μŠ€κ°€ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ” 지에 λŒ€ν•œ μ•„ν‚€ν…μ²˜ μŠ€νƒ€μΌ ν˜Ήμ€ 섀계원칙이닀.

REST 섀계 κ·œμΉ™ λͺ‡κ°€μ§€λ§Œ μ„€λͺ…ν•΄μ£Όμ„Έμš”
  • URIλŠ” λ™μ‚¬λ³΄λ‹€λŠ” λͺ…사λ₯Ό, λŒ€λ¬Έμžλ³΄λ‹€λŠ” μ†Œλ¬Έμžλ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€.
  • λ§ˆμ§€λ§‰μ— μŠ¬λž˜μ‹œλ₯Ό ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • 언더바 λŒ€μ‹  ν•˜μ΄ν”ˆμ„ μ‚¬μš©ν•œλ‹€.
  • 파일 ν™•μž₯μžλŠ” URI에 ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • ν–‰μœ„λ₯Ό ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€.
REST의 νŠΉμ§•μ— λŒ€ν•΄ μ„€λͺ…ν•΄μ£Όμ„Έμš”
  • Server-Client (μ„œλ²„-ν΄λΌμ΄μ–ΈνŠΈ ꡬ쑰)
  • Stateless (λ¬΄μƒνƒœ)
    • μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ €μž₯ν•˜μ§€ μ•ŠλŠ”λ‹€. λ”°λΌμ„œ 각각의 μš”μ²­μ€ λ…λ¦½μ μœΌλ‘œ μ²˜λ¦¬λœλ‹€.
  • Cacheable (μΊμ‹œ 처리 κ°€λŠ₯)
    • HTTP νŠΉμ§•μΈ 캐싱 κΈ°λŠ₯을 μ μš©ν•  수 μžˆλ‹€. 이λ₯Ό 톡해 응닡 μ‹œκ°„μ΄ 빨라진닀.
  • Layered System (계측화)
    • ν΄λΌμ΄μ–ΈνŠΈλŠ” REST API Server 만 ν˜ΈμΆœν•˜κ³  μ„œλ²„λŠ” 닀쀑 κ³„μΈ΅μœΌλ‘œ ꡬ성될 수 μžˆλ‹€.
  • Uniform Interface (μΈν„°νŽ˜μ΄μŠ€ 일관성)
    • URI 둜 μ§€μ •ν•œ Resource에 λŒ€ν•œ μ‘°μž‘μ„ ν†΅μΌλ˜κ³  ν•œμ •μ μΈ μΈν„°νŽ˜μ΄μŠ€λ‘œ μˆ˜ν–‰ν•œλ‹€.
REST API의 ꡬ성에 λŒ€ν•΄ 말씀해 μ£Όμ„Έμš”.

REST API의 κ΅¬μ„±μœΌλ‘œλŠ” μžμ›, ν–‰μœ„, ν‘œν˜„μ΄ μžˆμŠ΅λ‹ˆλ‹€. μžμ›μ˜ 식별은 URI ν•˜λ©°, μžμ›μ— λŒ€ν•œ ν–‰μœ„λŠ” HTTP λ©”μ„œλ“œλ‘œ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. ν‘œν˜„μ€ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°€ 데이터λ₯Ό μ£Όκ³ λ°›λŠ” ν˜•νƒœλ‘œ, μ „λ‹¬λ˜λŠ” λ°μ΄ν„°λŠ” JSON, XML λ“±μœΌλ‘œ ν‘œν˜„λ©λ‹ˆλ‹€.

RESTful APIλž€ 무엇을 μ˜λ―Έν•˜λŠ” κ±΄κ°€μš”?

REST 섀계 κ·œμΉ™μ„ μ§€ν‚€λ©° APIλ₯Ό μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό RESTfulν•˜λ‹€κ³  ν•˜λ©°, REST κ·œμΉ™μ„ 잘 μ€€μˆ˜ν• μˆ˜λ‘ RESTfulν•œ API라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

REST API λ₯Ό μ΅œλŒ€ν•œ RESTful ν•˜κ²Œ μ‚¬μš©ν•˜κΈ° μœ„ν•œ κ·œμΉ™μ„ μƒκ°λ‚˜λŠ” λŒ€λ‘œ 말씀해 μ£Όμ„Έμš”.
  • μžμ›μ— λŒ€ν•œ ν–‰μœ„λŠ” HTTP λ©”μ„œλ“œλ‘œ λ‚˜νƒ€λ‚Έλ‹€.
  • HTTP λ©”μ„œλ“œλ‚˜ ν–‰μœ„μ— λŒ€ν•œ ν‘œν˜„μ΄ URI에 λ“€μ–΄κ°€λ©΄ μ•ˆλœλ‹€.
  • URI κ²½λ‘œλŠ” μŠ¬λž˜μ‹œλ‘œ 계측 관계λ₯Ό ν‘œν˜„ν•˜λ©°, URI λ§ˆμ§€λ§‰μ— μŠ¬λž˜μ‹œκ°€ λ“€μ–΄κ°€λ©΄ μ•ˆ λœλ‹€.
  • URI κ²½λ‘œμ—λŠ” 언더바λ₯Ό μ‚¬μš©ν•˜λ©΄ μ•ˆ 되고, μ†Œλ¬Έμž μ‚¬μš©μ„ μ§€ν–₯ν•œλ‹€.

μ°Έκ³  https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

https://velog.io/@nias0327/REST-API%EC%9D%98-%EC%A0%95%EC%9D%98%EC%99%80-%ED%8A%B9%EC%A7%95