[테크 톡 - 6주차] Restful API

728x90

📌Restful API

◾ Rest란?

  • 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미
    * 자원 : 해당 SW가 관리하는 모든 것 ex. 문서, 그림, 데이터 등
    * 자원의 표현 : 그 자원을 표현하기 위한 이름 ex. DB의 학생 정보가 자원인 경우 'students'를 자원의 표현으로 정함
    * 상태 전달 : 데이터가 요청되어지는 시점에 자원의 상태를 JSON 혹은 XML을 통해 데이터를 주고 받음
  • HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미
  • 웹 사이트의 이미지, 텍스트, DB 내용 등 모든 자원에 고유한 ID인 HTTP URI를 부여

 

◾ Rest 구성요소

1. 자원 : URI

  • 해당 사이트의 특정 자원의 위치를 나타내주는 유일한 주소
  • 모든 것을 명사로 표현하고 세부 리소스에 ID를 붙임
  • 클라이언트는 URI를 이용해 자원을 지정하고, 해당 자원의 상태에 대한 조작을 서버에 요청

2. 행위 : Method

  • HTTP 프로토콜의 Method 사용


🔸 CRUD Operation

HTTP 프로토콜 Method뜻

GET 정보의 선택 (조회)
POST 정보의 생성
PUT 정보의 업데이트
DELETE 정보의 삭제
HEAD header 정보 조회

 

3. 표현 : Representation

  • 클라이언트가 자원의 상태에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보낸다.
  • REST 에서 하나의 자원은 JSON, XML을 통해 데이터를 주고 받는 것이 일반적이다.

 

◾ Restful API와 Rest API 차이점

1. Rest API

  • 어떤 자원에 의해 CRUD 연산을 하기 위해 URI(Resource)로 GET, POST 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태로 표현 됨
  • REST API를 제공하는 웹 서비스를 Restful 하다고 할 수 있다.

2. Restful API

  • 자원을 이름으로 구분해 해당 자원의 상태(정보)를 주고 받는 모든 것
  • 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 잇는 아키텍처 스타일
  • 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나
  • REST API를 제공하는 웹 서비스를 Restful 하다고 할 수 있다.

3. URI와 URL의 차이점

  • URI : 인터넷 상 장원의 위치. URL을 포함한 개념
  • URL : 인터넷 상의 자원을 식별하기 위한 문자열의 구성

 

◾ REST API 설계 기본 규칙

- 도큐먼트 : 객체의 인스턴스 혹은 DB 레코드와 유사한 개념
- 컬렉션 : 서버에서 관리하는 디렉터리라는 리소스
- 스토어 : 클라이언트에서 관리하는 리소스 저장소 

1. URI는 정보의 자원을 표현해야 한다.

  • 리소스는 명사 및 영문 소문자를 사용
  • 리소스의 도큐먼트 이름은 단수 명사를 사용
  • 리소스의 컬렉션 이름은 복수 명사를 사용
  • 리소스의 스토어 이름은 복수 명사를 사용

2. 자원에 대한 행위는 HTTP Method로 표현

  • URI에 HTTP Method가 들어가면 안됨
  • URI에 행위에 대한 동사 표현이 들어가면 안됨
    → CRUD 기능을 나타내는 것은 URI에서 사용하지 않음
  • 경로 부분 중 변하는 부분은 유일한 값으로 대체
    → ID는 특정 리소스를 나타내는 고유 값

🔸 예시

수정 전수정 후

GET /Member/1 GET /members/1
GET /members/delete/1 DELETE /members/1
GET /members/show/1 GET /members/1
GET /members/insert/2 POST /members/2
student 생성 시 POST /students
id='abcd'인 student 삭제 시 DELETE /students/12

 

◾ REST API 설계 규칙

1. 슬래시(/)는 계층관계를 나타낸다.

2. URI 마지막 문자로 슬래시(/) 사용하지 않음

3. 밑줄(_) 보다 하이픈(-) 사용

4. URI 경로에는 소문자 사용

5. 파일 확장자는 포함하지 않는다. 필요한 경우 Accept header에 명시

6. 전달하고자 하는 명사를 사용하되, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 사용

7. URI에 작성되는 영어를 복수형으로 작성

728x90