시작하며

RESTful API는 HTTP 메서드(GET, POST, PUT, DELETE)를 사용해 자원(Resource)을 표현하고 조작하는 아키텍처 스타일이다. Go의 net/http 패키지와 서드파티 라우터 라이브러리를 활용하면 표준적인 RESTful API 서버를 구현할 수 있다.

RESTful API 개념

RESTful API는 다음 원칙을 따른다.

  • 자원(Resource)은 URI로 식별한다.
  • 자원에 대한 행위는 HTTP 메서드(GET, POST, PUT, DELETE)로 표현한다.
  • 요청과 응답은 JSON 등 표준 포맷을 사용한다.
  • 서버는 상태를 저장하지 않는(Stateless) 구조를 유지한다.

Go에서는 net/http 표준 패키지만으로 기본 RESTful 서버를 구성할 수 있으며, gorilla/muxchi 같은 라우터 라이브러리를 추가하면 경로 파라미터 처리와 미들웨어 구성이 편리해진다.

정리하며

Go로 RESTful API를 구현할 때는 표준 net/http 패키지의 ServeMux를 기반으로 핸들러를 등록하고, JSON 인코딩/디코딩에는 encoding/json 패키지를 활용한다. 실제 서비스 수준의 API에서는 미들웨어를 통한 인증, 로깅, 에러 핸들링이 함께 구성되어야 한다.