Skip to main content
HTTP λ©”μ„œλ“œλŠ” API의 μ˜λ„λ₯Ό λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•˜κ³  RESTful 원칙을 λ”°λ₯΄λ„둝 ν•©λ‹ˆλ‹€.

HTTP λ©”μ„œλ“œ κ°œμš”

GET

데이터 쑰회 μ•ˆμ „ν•˜κ³  λ©±λ“±μ„±

POST

데이터 생성 λΉ„λ©±λ“±μ„±

PUT

데이터 μˆ˜μ • λ©±λ“±μ„±

DELETE

데이터 μ‚­μ œ λ©±λ“±μ„±

GET - 쑰회

데이터λ₯Ό μ‘°νšŒν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. μ„œλ²„ μƒνƒœλ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

단일 λ¦¬μ†ŒμŠ€ 쑰회

λͺ©λ‘ 쑰회

관계 데이터 쑰회

GET λ©”μ„œλ“œ νŠΉμ§•: - μ•ˆμ „ν•¨ (Safe): μ„œλ²„ μƒνƒœλ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠμŒ - λ©±λ“±μ„± (Idempotent): 같은 μš”μ²­μ„ μ—¬λŸ¬ 번 해도 κ²°κ³Ό 동일 - μΊμ‹œ κ°€λŠ₯ (Cacheable): λΈŒλΌμš°μ €/ν”„λ‘μ‹œμ—μ„œ μΊμ‹œ κ°€λŠ₯ - νŒŒλΌλ―Έν„°λŠ” URL 쿼리 슀트링으둜 전달

POST - 생성

μƒˆλ‘œμš΄ λ¦¬μ†ŒμŠ€λ₯Ό 생성할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

λ‹¨μˆœ 생성

λ³΅μž‘ν•œ 생성 (관계 데이터 포함)

배치 생성

POST λ©”μ„œλ“œ νŠΉμ§•: - λΉ„μ•ˆμ „ν•¨: μ„œλ²„ μƒνƒœλ₯Ό 변경함 - λΉ„λ©±λ“±μ„±: 같은 μš”μ²­μ„ μ—¬λŸ¬ 번 ν•˜λ©΄ λ¦¬μ†ŒμŠ€κ°€ 쀑볡 생성될 수 있음 - μΊμ‹œ λΆˆκ°€λŠ₯ - νŒŒλΌλ―Έν„°λŠ” Body둜 전달 - 일반적으둜 μƒμ„±λœ λ¦¬μ†ŒμŠ€μ˜ IDλ₯Ό λ°˜ν™˜

PUT - μˆ˜μ •

κΈ°μ‘΄ λ¦¬μ†ŒμŠ€λ₯Ό μˆ˜μ •ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

전체 μˆ˜μ •

λΆ€λΆ„ μˆ˜μ • (PATCH μŠ€νƒ€μΌ)

μƒνƒœ λ³€κ²½

PUT λ©”μ„œλ“œ νŠΉμ§•: - λΉ„μ•ˆμ „ν•¨: μ„œλ²„ μƒνƒœλ₯Ό 변경함 - λ©±λ“±μ„±: 같은 μš”μ²­μ„ μ—¬λŸ¬ 번 해도 κ²°κ³Ό 동일 - 일반적으둜 λ¦¬μ†ŒμŠ€ 전체λ₯Ό ꡐ체 - νŒŒλΌλ―Έν„°λŠ” Body둜 전달 - 성곡 μ‹œ 빈 응닡 λ˜λŠ” μ—…λ°μ΄νŠΈλœ λ¦¬μ†ŒμŠ€ λ°˜ν™˜

DELETE - μ‚­μ œ

λ¦¬μ†ŒμŠ€λ₯Ό μ‚­μ œν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

단일 μ‚­μ œ

μ†Œν”„νŠΈ μ‚­μ œ

κ΄€λ ¨ 데이터와 ν•¨κ»˜ μ‚­μ œ

배치 μ‚­μ œ

DELETE λ©”μ„œλ“œ νŠΉμ§•: - λΉ„μ•ˆμ „ν•¨: μ„œλ²„ μƒνƒœλ₯Ό 변경함 - λ©±λ“±μ„±: 이미 μ‚­μ œλœ λ¦¬μ†ŒμŠ€λ₯Ό λ‹€μ‹œ μ‚­μ œν•΄λ„ κ²°κ³Ό 동일 - 성곡 μ‹œ 일반적으둜 빈 응닡 (204 No Content) - μ†Œν”„νŠΈ μ‚­μ œ κ³ λ € (deleted_at 컬럼 μ‚¬μš©)

λ©”μ„œλ“œ 선택 κ°€μ΄λ“œ

선택 κΈ°μ€€

RESTful 원칙

쒋은 예

λ‚˜μœ 예

λ‹€μŒ 단계

νŒŒλΌλ―Έν„°

νƒ€μž… μ •μ˜ 및 검증

λ°˜ν™˜ νƒ€μž…

응닡 νƒ€μž… μ •μ˜ν•˜κΈ°

@api λ°μ½”λ ˆμ΄ν„°

κΈ°λ³Έ μ‚¬μš©λ²•

μ—λŸ¬ 처리

API μ—λŸ¬ 핸듀링