LUMI_dev

서버 - #4. API & RESTful API 본문

스파르타 코딩 클럽 | 자바 심화 과정/Spring Master (입문 주차)

서버 - #4. API & RESTful API

luminous_dev 2025. 1. 19. 17:37

API란?

API (application programming interface)

 : 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙 

    ex) 주문을 받으면 → 주문의 음식을 가져다 주는 식당의 점원

 

interface (인터페이스) 

 : 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고 받는 경우의 접점이나 경계면

 : 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템

 

RESTful API란? (Representational State Transfer)

 : API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처

 

고유 리소스 식별자

 : REST 서비스의 경우 서버는 URL을 사용해서 리소스 식별 수행

 

메서드

메서드 내용
GET 서버에 지정된 URL에 있는 리소스에 액세스 
POST 서버에 데이터 + 데이터 표현 전송
동일한 POST 요청 여러번 전송 → 동일한 리소스를 여러 번 생성하는 부작용 
PUT 서버의 기존 리소스 업데이트
동일한 PUT 요청 여러 번 전송해도 결과 동일 

 

RESTful한 설계

- API의 리소스 식별자를 중복 없이 고유하게 만듬

- API 적절한 HTTP 메서드를 사용 

 

중복 없는 경우 예시 

: GET /users/{userId}, POST /users, PUT /users/{userId} , DELETE /users/{userId}

 

중복 있는 경우 예시

: GET /users/{userId}, GET /users/{username} → ex) 사용자 정보를 userId로 조회하는 것과 username으로 조회하는 것

 * 같은 정보를 조회할 때 다른 리소스를 사용하는 것은 중복