TodoList 만들기
Rest API(REpresentational State Transfer)
- 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
- 모든 요청은 클라이언트가 요청할 때마다 필요한 정보를 주기 때문에 서버에서 세션 정보를 보관할 필요가 없다. 따라서 서비스에 자유도가 높아지고 유연한 아키텍처 적용이 가능하다.
- HTTP 메서드를 사용한다. 모든 자원은 HTTP 인터페이스인 GET, POST, PUT, DELETE 등의 메서드로 접근되어야 한다.
REST 구성요소
자원(Resource)
- 모든 자원에는 고유한 ID가 존재하고, 이 자원은 서버에 존재한다. REST는 자원에 접근할 때 URI(Uniform Resource Identifier)를 이용한다. 여기서 URI는 자원의 위치를 나타내는 일종의 식별자이다.
메서드(Method)
- REST는 기본적으로 HTTP 메서드를 사용한다. 그 종류에는 GET, POST, PUT, DELETE 등이 존재하고, 각각 다음과 같은 역할을 한다.
메시지(Message)
- 메시지는 HTTP header, body, 응답 상태 코드 등으로 구성되어 있다. 간단하게 설명하자면 header에는 body에 어떤 형식으로 데이터가 담겼는지 표시하고, body는 자원에 대한 정보를 JSON, XML 등으로 전달한다. 응답 상태 코드는 200~500 사이의 숫자로 클라이언트의 요청에 대한 상태를 나타내 준다
특징
- 서버-클라이언트(Server-Client) 구조
: 자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client가 된다.
- Stateless(무상태)
: HTTP프로토콜은 Stateless Protocol이므로 REST 역시 무상태성을 갖는다.
- Client의 Context를 Server에 저장하지 않는다.
- Cacheable(캐시 처리 가능)
: 웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있다.
- Layered System(계층화)
- Code-On-Demand
- Uniform Interface
REST API 설계 시 가장 중요한 항목
- URI는 정보의 자원을 표현해야한다.
- 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현해야한다.
- 소문자를 사용
- 하이픈(-) 사용
- 마지막은 슬래시(/) 포함하지 않는다.
- 행위는 포함하지 않는다.
- 파일 확장자는 URI에 포함하지 않는다.
- 가급적 전달하고자하는 자원의 명사를 사용하되, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 허용한다.
Mapping
get / post / put / delete
- get : 항목확인(select)
- post : 항목추가(insert)
- put : 항목변경(update)
- delete : 항목삭제(delete)
Postman
postman을 쓰는 이유
- 브라우저 검색창은 GET 요청만 가능하다
- 브라우저에서는 json데이터를 넘기기 어렵다
- postman에서는 다양한 메소드를 사용 가능하다
- get / post / put / delete
- json데이터를 넘기기 쉽다
- 다양한 통신 테스트를 하기 좋다
JSON 직접 만들기
git
https://github.com/youngmoon97/Spring
'my' 프로젝트