iOS

[iOS] REST API 알아보기

스벅 보안관 2024. 6. 27. 10:03

안녕하세요. 스벅보안관입니다.

 

"REST API가 뭔가요?"

 

언젠가 이러한 질문을 받게 된다면 약간 멈칫할 수 있을거 같습니다.

그동안 적지 않은 백엔드와의 협업을 통해 REST API로 기능을 구현한 프로젝트들을 진행했지만,

구체적인 REST API에 대한 정의와 완벽한 설명을 하기는 힘들 거라는 생각을 했습니다.

 

이번 포스트를 통해서 구체적인 REST API을 알아보도록 하겠습니다.

 

REST API 란?

REST를 기반으로 만들어진 API를 의미합니다.

 

그럼 REST는 뭐지..?

 

REST란?

  1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
  2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
  3. 해당 URI에 대한 CRUD를 적용하는 것을 의미합니다.

 

 

REST의 특징

  • Server-Client(서버-클라이언트 구조)
  • Stateless(무상태)
  • Cacheable(캐시 처리 가능)
  • Layered System(계층화)
  • Uniform Interface(인터페이스 일관성)

 

REST의 장점

  • 간결함: HTTP 프로토콜을 기반으로 하므로 URI와 HTTP 메소드만으로 자원에 접근할 수 있어 직관적이고 이해하기 쉽습니다.
  • 유연성: 다양한 형식(JSON, XML 등)을 지원하여 데이터를 주고받을 수 있습니다.
  • 무상태성: 각 요청이 독립적이기 때문에 서버의 확장성(Scalability)과 안정성이 높습니다.
  • 일관성: 표준화된 인터페이스로 인해 다른 API들과 일관되게 통신할 수 있습니다.

 

REST의 단점

언더페칭 (Underfetching):

언더페칭은 클라이언트가 필요한 데이터를 한 번의 요청으로 가져올 수 없어 여러 번의 추가 요청이 필요한 상황을 말합니다.

 

오버페칭 (Overfetching):

오버페칭은 클라이언트가 필요로하지 않는 추가 데이터까지 서버로부터 받아오는 상황을 말합니다.

 

 

그럼 다시 돌아와서

REST API는 이러한 REST를 기반으로 만들어진 API이라고 했습니다.

 

REST API 설계를 진행할 때에는 몇가지 규칙을 지켜야합니다.

REST API 설계 규칙

  • URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
// 나쁜 예
http://example.com/CreateUser/

//좋은 예
http://example.com/users/

 

  • URI 마지막에 슬래시(/)를 포함하지 않는다.
//나쁜 예
http://example.com/orders/

//좋은 예
http://example.com/orders
  • 언더바(_) 대신 하이픈(-)을 사용한다.
//나쁜 예
http://example.com/user_profile

//좋은 예
http://example.com/user-profile
  • 파일확장자는 URI에 포함하지 않는다.
//나쁜 예
http://example.com/document.pdf

//좋은 예
http://example.com/document
  • 행위를 포함하지 않는다.
//나쁜 예
http://example.com/delete-user/123

//좋은 예
http://example.com/users/123

 

 

 

결론

사실 REST API를 너무 당연하게 써와서 인지,

정확한 정의나 개념에 대한 완성도가 부족했던 것을 느꼈습니다.

 

알고 쓰자..