RESTful API

박준수·2023년 5월 10일
0

RESTful API

  • REpresentational State Trasfer의 약어로 웹을 이용할때 제약 조건들을 정의하는 소프트웨어 아키텍처 스타일입니다. HTTP URL을 통해 자원을 명시하고 HTTP METHOD(GET, POST, PUT, DELETE)을 통해서 해당 자원에 대한 CRUD(Create, Read, Update, Delete)를 적용하는 것을 의미합니다.

  • GET : 지정된 URL에서 리소스의 표현을 조회

  • POST : 지정된 URL에 신규 리소스를 생성

  • PUT : 지정된 URL에 리소스를 생성하거나 업데이트

  • PATCH : 리소스의 부분 업데이트

  • DELETE : 지정된 URL의 리소스를 제거

REST 특징

  • 인터페이스 일관성 : 일관적인 인터페이스로 분리되어야 합니다.
  • 무상태 : 각 요청 간 클라이언트의 context, 세션과 같은 상태 정보를 서버에 저장하지 않습니다.
  • 캐시 처리 가능 : 클라이언트는 응답을 캐싱할 수 있어야 합니다. 캐시를 통해 대량의 요청을 효율적으로 처리할 수 있습니다.
  • 계층화 : 클라이언트는 대상 서버에 직접 연결되어있는지, Proxy를 통해서 연결되었는지 알 수 없습니다.
  • Code on demand : 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트를 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있습니다.
  • 클라이언트/서버 구조 : 아키텍처를 단순화시키고 작은 단위로 분리함으로써 클라이언트-서버의 각 파트가 독립적으로 구분하고 서로 간의 의존성을 줄입니다.

REST 구성요소

1. 자원 : HTTP URL

REST에서 자원은 URI(Uniform Resource Identifier)로 식별됩니다. 자원은 예를 들어 사용자, 댓글, 이미지 등과 같은 것이 될 수 있습니다. URI는 자원을 고유하게 식별하고, 자원에 대한 요청을 수행하기 위한 메커니즘을 제공합니다.

2. 자원에 대한 행위 : HTTP Method

REST에서는 HTTP 프로토콜의 메서드를 이용하여 자원을 조작합니다. HTTP 메서드는 GET, POST, PUT, DELETE 등이 있으며, 각각의 메서드는 서버에 요청하는 목적에 따라 적절한 메서드를 선택하여 사용합니다.

3. 자원에 대한 표현 :(Representation)

자원은 특정 형식으로 표현됩니다. REST에서는 텍스트, JSON, XML 등 다양한 형식으로 표현할 수 있습니다. 클라이언트는 서버로부터 받은 자원의 표현을 처리하고 해석할 수 있어야 합니다. 서버는 표현 형식을 Content-Type 헤더와 같은 메타데이터를 이용하여 클라이언트에게 알려줍니다.

REST API 설계 Rulse 및 예시

1. 소문자를 사용한다

2. 언더(_) 대신 하이폰(-)을 사용한다.

3. 마지막에 슬래쉬(/)를 포함하지 않는다.

4. 행위를 포함하지 않는다.

5. 파일 확장자는 URL에 포함시키지 않는다.

6. 자원에는 형용사, 동사가 아닌 명사를 사용하며, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 사용한다.

참고자료 : https://cocoon1787.tistory.com/540

profile
꾸준한 개발자

0개의 댓글