44μž₯ REST API

RESTλŠ” HTTPλ₯Ό 기반으둜 ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ˜ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜λŠ” 방식을 κ·œμ •ν•œ μ•„ν‚€ν…μ²˜.

REST APIλŠ” RESTλ₯Ό 기반으둜 μ„œλΉ„μŠ€ APIλ₯Ό κ΅¬ν˜„ν•œ 것을 μ˜λ―Έν•¨.

RESTλŠ” 둜이 ν•„λ”©μ˜ 2000λ…„ λ…Όλ¬Έμ—μ„œ 처음 μ†Œκ°œλ˜μ—ˆλ‹€. λ°œν‘œ λ‹Ήμ‹œμ˜ 웹이 HTTPλ₯Ό μ œλŒ€λ‘œ μ‚¬μš©ν•˜μ§€ λͺ»ν•˜λŠ” 상황을 보고 HTTP μž₯점을 μ΅œλŒ€ν•œ μ‚¬μš©ν•  수 μžˆλŠ” μ•„ν‚€ν…μ²˜λ‘œμ„œ RESTλ₯Ό μ†Œκ°œν–ˆκ³  μ΄λŠ” HTTP ν”„λ‘œν† μ½œμ„ μ˜λ„μ— 맞게 λ””μžμΈν•˜λ„λ‘ μœ λ„ν•˜μ˜€λ‹€. REST의 κΈ°λ³Έ 원칙을 μ„±μ‹€νžˆ 지킨 μ„œλΉ„μŠ€ λ””μžμΈμ„ RESTful이라 ν‘œν˜„ν•œλ‹€.

44.1 REST API의 ꡬ성

REST APIλŠ” μžμ›, ν–‰μœ„, ν‘œν˜„μ˜ 3κ°€μ§€ μš”μ†Œλ‘œ κ΅¬μ„±λœλ‹€. RESTλŠ” 자체 ν‘œν˜„ ꡬ쑰둜 κ΅¬μ„±λ˜μ–΄ REST API 만으둜 HTTP μš”μ²­μ„ 이해할 수 μžˆλ‹€.

μžμ› Resource - URI

ν–‰μœ„ Verb - HTTP μš”μ²­ λ©”μ„œλ“œ

ν‘œν˜„ Representations - νŽ˜μ΄λ‘œλ“œ

44.2 REST API 섀계 원칙

RESTμ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 기본적인 원칙은 2κ°€μ§€λ‹€.

  1. URIλŠ” λ¦¬μ†ŒμŠ€λ₯Ό ν‘œν˜„ν•΄μ•Ό ν•œλ‹€.

URIλŠ” λ¦¬μ†ŒμŠ€λ₯Ό ν‘œν˜„ν•˜λŠ”λ° 쀑점을 두어야 ν•œλ‹€. λ¦¬μ†ŒμŠ€λ₯Ό 식별할 수 μžˆλŠ” 이름은 동사보닀 λͺ…사λ₯Ό μ‚¬μš©ν•œλ‹€. λ”°λΌμ„œ 이름에 getκ³Ό 같은 ν–‰μœ„μ˜ ν‘œν˜„μ΄ λ“€μ–΄κ°€μ„œλŠ” μ•ˆλœλ‹€.

# bad
GET /getTodos/1
GET /todos/show/1

# good
GET /todos/1

  1. λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ ν–‰μœ„λŠ” HTTP μš”μ²­ λ©”μ„œλ“œλ‘œ ν‘œν˜„ν•œλ‹€.

HTTP μš”μ²­ λ©”μ„œλ“œλŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ—κ²Œ μš”μ²­μ˜ μ’…λ₯˜μ™€ λͺ©μ μ„ μ•Œλ¦¬λŠ” 방법이닀. 주둜 5κ°€μ§€ μš”μ²­ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ CRUDλ₯Ό κ΅¬ν˜„ν•œλ‹€.

HTTP μš”μ²­ λ©”μ„œλ“œ
μ’…λ₯˜
λͺ©μ 
νŽ˜μ΄λ‘œλ“œ

GET

index/retrieve

λͺ¨λ“ /νŠΉμ • λ¦¬μ†ŒμŠ€ 취득

X

POST

create

λ¦¬μ†ŒμŠ€ 생성

O

PUT

replace

λ¦¬μ†ŒμŠ€μ˜ 전체 ꡐ체

O

PATCH

modify

λ¦¬μ†ŒμŠ€μ˜ 일뢀 μˆ˜μ •

O

DELETE

delete

λͺ¨λ“ /νŠΉμ •λ¦¬μ†ŒμŠ€ μ‚­μ œ

X

43.3 JSON Serverλ₯Ό μ΄μš©ν•œ REST API μ‹€μŠ΅

43.3.1 JSON Server μ„€μΉ˜

P.832

43.3.2 db.json 파일 생성

P.832 - P.833

43.3.3 JSON Server μ‹€ν–‰

P.833 - P.834

43.3.4 GET μš”μ²­

P.834 - P.836

43.3.5 POST μš”μ²­

P.837 - P.838

43.3.6 PUT μš”μ²­

P.838 - P.839

43.3.7 PATCH μš”μ²­

P.839 - P.840

43.3.8 DELETE μš”μ²­

P.840 - P.841

Last updated