REST(REpresentational State of Transfer) API의 개념
REST 는 REpresentational State of Transfer 의 줄인말. 위키백과 에 의하면 지금 널리 사용되고 있는 World Wide Web (WWW) 와도 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍쳐의 한 형식. 여기서 중요한 것은 소프트웨어의 아키텍쳐를 어떻게 형성할 지에 대한 가이드라인 이라는 것입니다. 총 6개의 가이드라인이 존재하는데 다 따르게 된다면 해당 아키텍쳐를 'RESTful' 이라고 부르게 된다.
REST의 가장 중요한 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체(endpoint의 이름등)로 추론 가능. RESTful하게 만든 API는 요청을 보내는 주소만으로도 대략 이게 뭘 하는 요청인지 파악이 가능.
서버에 REST API로 요청을 보낼 때 HTTP란 규약에 따라 신호를 전송. 하지만 누구든 각 요청의 의도를 쉽게 파악할 수 있도록 RESTful하게 API를 만들기 위해서는 이들을 목적에 따라 구분해서 사용해야 한다.
REST API튜토리얼.
https://restfulapi.net/rest-api-design-tutorial-with-example/
ref. https://www.youtube.com/watch?v=iOueE9AXDQQ
REST API 활용 예시
GET
이번에는 REST API 에서 GET 요청에 대한 예시를 살펴보겠습니다.
GET 요청은 REST 에서 정보나 리소스를 가지고 올 때만 사용하라고 제시됩니다. 즉, 서버에 기록된 데이터나 리소스를 변경할 때 사용해서는 안된다는 뜻이죠.
이처럼 기존 리소스에 대한 변경을 하지 않고 그저 가져오는 역할을 하기 때문에 '안전한' 메소드라고도 볼 수 있습니다. 또한 하나의 GET 요청은 매번 동일한 결과를 나타내야 합니다 (서버의 리소스가 변경되지 않았다는 가정하에).
GET 요청 예시를 보겠습니다:
- HTTP GET http://www.appdomain.com/users
→ /users 로 끝나고 서버에 기록된 유저들을 가져올 거라고 예상. - HTTP GET http://www.appdomain.com/users?size=20&page=5
→ 유저를 가지고 오지만 추가 Query Parameter ( ? 뒤에 오는 항목들)를 통해 페이지와 개수를 정해주고 있다. - HTTP GET http://www.appdomain.com/users/123
→ Path Variable; 유저를 가지고 오지만 유저 목록 중에서 123 에 일치하는 유저를 가지고 올 거라 예상 - HTTP GET http://www.appdomain.com/users/123/address
→ 3번의 유저 정보에서 address 정보만 가지고 올 거라 예상
위처럼 주소만 봐도 어떤 리소스를 가져올 수 있는지 파악할 수 있다.
이처럼 GET 요청은 특정 리소스를 가지고 올 때 사용이 되고 기존 정보를 변경하거나 하는 작업을 하지 않는다.
Query Parameter
GET 메소드를 사용해서 데이터를 전송하는 하고, 각각의 사용자를 위한 페이지를 만들려면 페이지 마다 식별된 파라미터 경로가 필요하다. 그때 식별 할 수 있는 파라미터( ? 이후에 오는 항목들). 서버로 부터 ?이후 입력된 변수를 얻을 수 있다. 이것이 Query String이 동작하는 방식.
Path Variable
데이터를 넘기는 또다른 방법 중의 하나로 Path Variable도 사용할 수 있다. Path Variable은 endpoint에 변수를 입력하여 사용한다. (=경로를 변수로서 사용)
어떤 resource를 식별하고 싶으면 Path Variable을 사용하고, 정렬이나 필터링을 한다면 Query Parameter를 사용하는 것.
'Web' 카테고리의 다른 글
[Web 개념] API (0) | 2021.07.30 |
---|---|
[Web 개념] HTTP (0) | 2021.07.30 |