목차
1. REST란?
1) 풀네임은 'Representational State Transfer'이다. 뜻은 '표현된 상태 전송'으로 '자원을 원하는 형태로 표현하여 전송하면 결과를 상태로 전송 받는다'로 쉽게 정리할 수 있다. 하지만 이것만 가지고는 제대로 이해하기 힘들 것이다. 더 자세하게 정리해보자.
2. REST를 자세히
※ Representational의 '표현된'은 URI를 통해 자원을 지정해야하는데 이때 'HTTP 메서드'를 사용한다.
- HTTP 메서드 의미 : ① 자원에 대한 행위를 표현 ② Client가 Server에 요청하는 목적이나 종류를 알리는 수단
예) GET /keyword/1 HTTP/1.1
- REST API를 충족할 때 크게 2가지 케이스를 충족시켜야 한다. 케이스는 다음과 같다.
① URI를 통해 자원을 지정해야한다.
② HTTP 메서드를 통해 어떻게 사용할 것인지 표현한다.
이 두 가지 케이스에 대해 알아보자.
1) URI 네이밍 규칙.
① 표준용어를 기준으로 네이밍한다.( URI 네이밍은 URI의 의도 파악을 쉽게하기 위해 중요하다. )
② 네이밍은 명사를 사용해야한다.
* 하지만 예외적으로 동사가 허용되는 경우도 있다. 예를 들어 데이터를 수집하는 프로그램을 동작하기 위한 통신을 하는 경우 '/Execute' 로 표현할 수 있다.
③ 계층 관계 표현으로 슬래시('/')를 사용해야 한다.
- 1052번 학번의 학생을 조회하고 싶다면 다음과 같이 표현할 수 있다.
- 예) /student/1052
④ 하이픈(-)을 사용해서 네이밍할 수 있다.
- 가독성 향상을 위해 지각한 학생을 조회하기 위해 다음과 같이 표현할 수 있다.
- 예) /student-tardy
⑤ 소문자만 사용해야한다.
⑥ 파일 확장자를 표시하지 않는다.
⑦ 쿼리 스트링을 이용할 수 있다.
- 예) /student?type=tardy
2) HTTP 메서드 종류.
- HTTP 메서드는 GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE, CONNECT 등이 있다. 하지만
REST API에서는 POST, GET, PUT, PATCH, DELETE 5가지만 사용한다.
① POST : 자원을 생성 / body를 통해 생성할 데이터를 지정한다.
② GET : 데이터 조회
③ PUT : 데이터 수정하고 body를 이용한다. body로 넘겨주지 않는 데이터는 null값으로 업데이트 된다.
- 전체를 업데이트하고, 업데이트할 데이터가 없는 경우 신규로 생성(멱등성을 가진다.)
④ PATCH : 데이터 수정하고 body를 이용한다. body로 넘겨주지 않는 데이터는 기존값으로 업데이트 된다.
- 일부를 업데이트하고 멱등성을 가지지 않을 수 있다.
⑤ DELETE : 데이터 삭제 ( body를 사용하지 않고 경로변수(PathVariable) 사용 )
구분 | CRUD구분 | 메서드 | 엔드포인트 | 바디 사용여부 |
생성 | CREATE | POST | /keyword | {body} |
조회 | READ | GET | /keyword/1 | |
수정 | UPDATE | PUT | /keyword/1 | {body} |
삭제 | DELETE | DELETE | /keyword/1 |
* 멱등성 : 업데이트 API를 여러번 호출해도 데이터의 일관성을 보장함(결과가 똑같다.)
'자기계발 > Computer Science' 카테고리의 다른 글
CS ] call by value와 call by reference(함수 호출 방식) (0) | 2022.08.23 |
---|---|
CS ] 오버로딩(OverLoading)과 오버라이딩(Overriding)의 차이 (0) | 2022.08.22 |
CS개념잡기 2탄 ] 프로세스, 스레드, 멀티프로세스, 멀티스레드, 동기화 (0) | 2021.12.21 |
CS개념잡기 1탄 ] 메모리의 구조 및 프로그램 실행 과정 알기 (0) | 2021.12.21 |
CS ] MVC패턴 이란? / MVC패턴 이해하기 (0) | 2021.09.12 |