-
[REST]REST, REST API, RESTful카테고리 없음 2021. 3. 12. 11:48
REST API를 알기위해 일단 REST 부터 알아보자
REST
- "Representational State Transfer" : 즉, 자원을 이름으로 구분해서 해당 자원의 상태를 주고받는 모든 것을 의미한다.
- 상태는 즉 정보이며, 이들을 주고받을 땐 JSON 이나 XML 을 통해 주고 받는 것이 일반적이다.
- 상태를 전달할때는 이 상태가 요청되는 바로 그 시점을 기준으로 전달한다.
좀 더 구체적으로 설명하자면,
HTTP URL 을 통해 Resource 를 명시하고 ( 즉 Resource 는 고유한 ID 인 URL 을 부여받는다 ), HTTP Method 를 통해 해당 Resource에 대한 CRUD operation 을 적용하는 것을 의미한다.
http://localhost:8000/movies
위의 url 을 보면 movies 라고 resource 를 명시하고 있다.
만약 해당 경로에 데이터를 읽어오고 싶다면 HTTP Method ( GET , POST 등 ) 중 GET 을 이용해서 해당 서버로 request 를 날리는 방식으로 동작한다.
REST 구성 요소
1. Resource ( 자원 ) : URL
- 모든 resource 에는 고유한 ID 가 존재하며, 이 resource 는 서버에 존재한다.
- resource 를 구별해주는 고유한 ID 는 URL 의 형태이다. ( '/movies/:id' 처럼 )
- Client 가 URL 을 이용해서 resource 를 지정하고 resource 상태의 조작을 서버에 요청한다.
- resource 는 JSON, XML, TEST 등 여러 형태로 나타낼 수 있다.
2. Verb ( 행위 ) : HTTP Method
- HTTP 프로토콜의 Method 를 이용한다.
3. Representation of Resource ( 표현 )
- Client 가 resource 의 상태에 대한 조작을 request 하면 서버는 해당 request를 받아 적절한 response 를 보낸다.
REST 의 특징
REST 의 특징은 정말 많지만 , REST API 에 초점을 맞춘다면 가장 중요한 특징은 서버-클라이언트 구조라는 점이다.
- Server-Clinet ( 서버 - 클라이언트 구조 )
- resource 가 있는 곳이 서버, 요청하는 곳이 클라이언트가 된다.
- 바로 이 서버를 rest 서버 라고 부르고, 여기서 우리가 알고싶은 rest api 를 제공하고 비즈니스 로직 처리 및 저장을 담당한다.
- 클라이언트는 사용자의 인증, context 등을 관리하고 책임진다.
- 이렇게 분리됨에 따라 서로 의존성이 줄어든다.
자 이제 REST API 에 대해 알아보자. 일단 우리는 REST API 가 REST server 에서 제공해주는 것이라고 알고있다.
그리고 이 REST server 에 resource 가 존재하며, 비즈니스 로직 처리 및 저장을 모두 담당하고 있다.
API 란
데이터와 기능의 집합을 제공하여 서로 정보를 교환가능 하도록 하는 것
REST API
REST 기반으로 서비스 API 를 구현한 것
REST API 중심 규칙
1) URI는 정보의 자원을 표현해야 한다. (리소스명은 동사보다는 명사를 사용)
GET /members/delete/1
위와 같은 방식은 REST를 제대로 적용하지 않은 URI이다. URI는 자원을 표현하는데 중점을 두어야 합니다. delete와 같은 행위에 대한 표현이 들어가서는 안된다.
2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)로 표현
위의 잘못 된 URI를 HTTP Method를 통해 수정해 보면
DELETE /members/1
으로 수정할 수 있다.
회원정보를 가져올 때는 GET, 회원 추가 시의 행위를 표현하고자 할 때는 POST METHOD를 사용하여 표현한다.- 회원정보를 가져오는 URI
GET /members/show/1 (x)
GET /members/1 (o)- 회원을 추가할 때
GET /members/insert/2 (x) - GET 메서드는 리소스 생성에 맞지 않습니다.
POST /members/2 (o)- METHOD역할
POST
POST를 통해 해당 URI를 요청하면 리소스를 생성합니다.
GET
GET를 통해 해당 리소스를 조회합니다. 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져온다.
PUT
PUT를 통해 해당 리소스를 수정합니다.
DELETE
DELETE를 통해 리소스를 삭제합니다.
다음과 같은 식으로 URI는 자원을 표현하는 데에 집중하고 행위에 대한 정의는 HTTP METHOD를 통해 하는 것이 REST한 API를 설계하는 중심 규칙이다.
Restful 이란?
일반적으로 REST 라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어다,
즉, REST API 를 제공하는 웹 서비스를 Restful 하다고 표현한다.
참고
gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
댓글