Article
RESTful API 설계 원칙과 실전 예시
목차
1. REST와 RESTful이란?
REST의 정의, 원칙, RESTful의 의미
REST(Representational State Transfer)는 자원을 이름(URI)으로 구분하고, HTTP 프로토콜을 통해 상태를 주고받는 아키텍처 스타일입니다. RESTful은 REST 원칙을 잘 지키는 API를 의미합니다.
2. RESTful API 설계 6대 원칙
Uniform Interface, Stateless, Cacheable 등 각 원칙 상세 설명
- Uniform Interface(일관된 인터페이스): URI, HTTP 메서드, 응답 구조 일관성
- Stateless(무상태성): 서버는 클라이언트 상태를 저장하지 않음
- Cacheable(캐시 가능): 응답에 캐시 여부 명시
- Client-Server 구조: 클라이언트와 서버 역할 분리
- Layered System: 중간 서버(프록시, 게이트웨이) 활용 가능
- Code on Demand(선택적): 서버가 코드를 클라이언트에 전송
3. URI 설계와 HTTP 메서드 활용
리소스 중심 URI, GET/POST/PUT/DELETE, 예제 설계
/users(GET: 목록, POST: 생성)/users/{id}(GET: 조회, PUT: 수정, DELETE: 삭제)
4. 응답 구조와 상태코드
JSON 응답, 표준 상태코드, 오류 처리, 예제 코드
{
"status": "success",
"data": {
"id": 1,
"name": "홍길동"
}
}
- 상태코드: 200(OK), 201(Created), 400(Bad Request), 401(Unauthorized), 404(Not Found), 500(Internal Server Error)
5. 실전: 코틀린으로 RESTful API 서버 만들기
@RestController
@RequestMapping("/api/v1/articles")
class ArticleController {
@GetMapping
fun list(): List<Article> = ...
@PostMapping
fun create(@RequestBody dto: ArticleDto): Article = ...
}
- Swagger/OpenAPI로 문서화
- 예외 처리, 테스트 코드 작성
6. 결론
RESTful API의 원칙을 지키면, 확장성과 유지보수가 뛰어난 웹 서비스를 만들 수 있습니다. 실전 예제와 공식 문서를 참고해보세요.