RESTful API
What is RESTful API?
Representational
State
Transfer
WWW (World Wide Web) μ κ°μ
Hypermedia system
μ μνSoftware Architecture
μ€ νλμ νμREST Server
λ clientκ° HTTP Protocolμ μ¬μ©νμ¬ serverμ μ 보μ μ κ·Ό λ° λ³κ²½μ κ°λ₯μΌ ν¨μ 보λ
text
,xml
,json
νμμΌλ‘ μ 곡λ¨μμ¦μ
json
μ΄ λμΈ!
HTTP method
REST κΈ°λ° architectureμμ μμ£Ό μ¬μ©λλ 4κ°μ§ methods
GET
: μ‘°ν
PUT
: μμ± λ°
μ λ°μ΄νΈ
DELETE
: μ κ±°
POST
: μμ±
Database μμ±
JSONκΈ°λ°μ user database λ§λ€κΈ°
Test04_RESTful > data > user.json
1. API: GET/list
λͺ¨λ user list μΆλ ₯νλ
GET API
λ§λ€κΈ°
router > main.js
__dirname
νμ¬ moduleμ μμΉλ₯Ό λνλ
router moduleμ router folderμμ μμ΄μ data folderμ μ κ·Όνλ €λ©΄ μλκ²½λ‘ μ΄μ©ν΄μΌν¨!
server μ€ν ν http://localhost/list μ μ

2. API: GET/getUser/:username
νΉμ usernameμ detailν μ 보 κ°μ Έμ€λ
GET API
λ§λ€κΈ°!
router > main.js μ μΆκ°
file μ½μ ν, user idλ₯Ό μ°Ύμμ μΆλ ₯ν΄μ€
userλ₯Ό μ°ΎμΌλ©΄ user data μΆλ ₯
μμΌλ©΄ {} μΆλ ₯
fs.readFile()
λ‘ fileμ μ½μμ μμ text ννλ‘ μ½μ΄μ§κΈ° λλ¬ΈμJSON.parse()
λ₯Ό ν΄μΌνλ€!
server λ€μ μ€ν ν http://localhost/getUser/first_user μ μ

3. API: POST addUser/:username
body: { βpasswordβ: ββ, βnameβ: ββ }
router > main.js μ μΆκ°
JSON
ννκ° Invalid νλ©΄ μ€λ₯ λ°νvalid νλ©΄ νμΌμ μ΄μ΄μ
username
μ μ€λ³΅μ±μ νμΈ νJSON
dataμ μΆκ°νμ¬ λ€μ μ μ₯stringify(users, null, 2)
μ JSON μ pretty-print λ₯Ό μν¨
4. API: PUT updateUser/:username
body: { βpasswordβ: ββ, βnameβ: ββ }
μ¬μ©μ μ 보λ₯Ό updateνλ API
PUT
method μ¬μ©idempotent ν
PUT API
μμ²μ λͺ λ² μννλλΌλ, κ°μ κ²°κ³Όλ₯Ό 보μ₯ν΄μΌν¨!
router > main.js μ μΆκ°
5. API: DELETE deleteUser/:username
μ¬μ©μ dataλ₯Ό μμ νλ API
DELETE
method μ¬μ©
router > main.jsμ μΆκ°
Last updated
Was this helpful?