REST APl

귤녹차·2025년 1월 27일

‘얄팍한 코딩사전 -REST API - 이거 하나로 끝남’ 을 기본으로 정리하였습니다.

1️⃣REST APl

정보 전달을 요청하고 응답 받을 수 있는 API의 다양한 형식 중 하나이다.

2️⃣ URL

URL는 ‘어떤 자원’에 관한 것인지 표현해야 하고 또 가능한 한 ‘그것만’ 표현해야 한다. 그 자원으로 무엇을 하는 지에 대해서는 가능한 URL에 포함하지 않는다. 어떤 종류의 작업을 하는 지에 대해서는 HTTP 메소드로 표현한다.

4️⃣ HTTP 메소드 - GET

GET은 정보를 조회할 때 사용된다.

특정 조건으로 필터링하여 정보를 조회 하려면 query parameter를 사용한다.

받을 데이터의 수량 조절페이지네이션을 이용할 수 있다.

특정 정보를 조회하고 싶을 때는 끝에 고유 식별자를 붙인다.

고유 식별자를 사용하기 위해서는 반드시 데이터베이스 설계 시 각 항목마다 고유값을 가질 수 있도록 해야한다.

HATEOAS

요청한 데이터와 관련하여 요청 가능한 다른 기능들도 함께 전달해주는 것이다. 개발자는 해당 데이터를 통해서 다음에 추가로 가능한 요청에 대하여 알 수 있는 장점이 있다.

각 리소스는 상위 혹은 하위 리소스를 가질 수 있다.

책의 경우, 책에 대한 리뷰가 있다면 책이 상위 리소스, 리뷰가 하위 리소스로 구분할 수 있다.

1번 책의 리뷰를 확인하기 위해서는 위와 같이 사용할 수 있다.

3️⃣ HTTP 메소드- POST

새로운 책에 대한 정보를 추가하고 싶은 경우, body에 정보를 담아 전달한다. 책의 성공적 등록 후 서버에서는 오른쪽과 같이 자동으로 추가된 새로운 정보가 추가된 응답을 돌려줄 수 있다,

4️⃣ HTTP 메소드- PUT

PUT 요청을 특정 항목에 대한 전체 대체 시 사용된다. 따라서 body에 대체할 모든 정보를 담아 전달한다.

5️⃣ HTTP 메소드- PATCH

정보의 부분 수정을 원할 경우 PATCH를 사용할 수 있다. 수정을 원하는 데이터만 담아 전달한다.

6️⃣ HTTP 메소드- DELETE

정보의 삭제의 경우 DELETE를 사용한다. 원하는 삭제 데이터를 나타낼 수 있는 고유번호를 함께 전달한다.

7️⃣ 응답의 상태 코드

서버의 응답에는 요청에 대한 상태를 나타낼 수 있는 코드를 함께 보내준다.

  • 2xx: 요청 성공 (예: 200 OK, 201 Created, 204 No Content 등)
  • 4xx: 클라이언트 오류 (예: 400 Bad Request, 401 Unauthorized, 404 Not Found 등)
  • 5xx: 서버 오류 (예: 500 Internal Server Error, 502 Bad Gateway 등)

8️⃣ STATELESS, Idempotent, Cacheability

STATELESS

클라이언트의 상태 정보가 서버에 저장되지 말아야 한다.

즉, 동일한 요청을 여러 번 하더라도 필요한 모든 내용을 포함하여 다시 응답해야 한다.

Idempotent

데이터 수정이 없을 경우, 클라이언트가 같은 요청을 하 항상 같은 답이 응답되어야 한다.

Cacheability

서버와 클라이언트는 서버 본인이 보낸 응답과 클라이언트 본인이 보낸 요청에 관해서는 기억을 하는 것이 좋다.

해당 데이터를 또 다시 사용할 수 있도록 저장하는 것을 캐싱이라고 한다.

9️⃣ 보안과 인증

REST API에서 보안은 매우 중요하며, OAuth, JWT(JSON Web Token) 등의 인증 방식이 자주 사용된다.

또한, HTTPS를 사용하여 통신을 암호화하는 것이 보안상 매우 중요하다.

profile
배우는 과정에 즐거움을 느끼고 있습니다.

0개의 댓글