데이터를 이름(표현)으로 구분하여 데이터의 상태(정보)를 주고 받는것.
REST API는 여러 장점들이 있다. 하지만 그 중 가장 큰 장점은 API의 목적을 쉽게 이해할 수 있기 때문이다.
user 의 정보를 얻고자 함 > [GET] localhost:8000/users
post 의 1번 정보를 얻고자 함 > [GET] localhost:8000/posts/1
post 의 1번 글을 수정 하고자 함 > [PATCH] localhost:8000/posts/1
위와 같이, URI만 보더라도 해당 요청을 해석하기 쉽다는 장점이 있다.
위의 URI를 보면 2번째와 3번째의 주소가 같은데 이는 method
로 구분되기에 같은 주소를 사용해도 다른 기능으로 작동하는 것을 볼 수 있다.
REST는 일반적으로 널리 통용되는 규칙이다. 프로그램의 원활한 유지보수와 커뮤니케이션을 원활히 돕도록 만들어진 규칙이다.
일반적으로 URL, HTTP method, Status Code 를 통해 인터페이스를 구현한다.
[GET] /users/find/1
[GET] /input/users/1
[DELETE] /delete/users/1
[GET] /users/1/posts_likes
데이터에 대한 행위는 HTTP method 만으로 표현한다. 위 처럼 URL에 행위를 기입 할 경우, 작업에 대한 혼선을 주는 행위이다.
언더바 _
도 사용하지 않는다. 하이퍼 링크나 폰트등의 문제로 언더바는 가독성이 떨어져 사용하지 않는것이 좋다.
[GET] /users/1
[POST] /users/1
[DELETE] /users/1
[GET] users/1/post-likes
나쁜 예에 대해 수정한 내용이다 HTTP method 만으로 행위를 기입해, 훨씬 깔끔한 URI 가 완성 되었다.
URL에는 가변적인 부분이 있다. 예를 들면, http://naver.com/stocks/kakao URL을 보면 kakao의 주식 정보를 나타냄을 직관적으로 알 수 있다. 위 링크의 kakao 처럼 정보의 요청에 따라 언제든지 바뀔수 있고, 가변적인 자리. 이 공간을 path parameter 라고 부른다.
path parameter는 모든 메소드에도 사용할 수 있으며, 사용하지 않을 수도 있다. PATCH
메소드와 함께 사용할 경우 데이터를 수정할 것 이라고 알 수 있고, GET
메소드와 함께 사용할 경우 데이터를 확인할 것이라고 알려줄 수 있다.
위 처럼 서로 다른 데이터를 가르키지만 데이터의 종류가 동일 한 경우, path parameter를 이용해 RESTful API를 구현할 수 있다.
URL에서 특정한 조건을 주고 싶을때 사용하는 유형이다. URL 끝
?
뒤에 나타내며&
로 구분되어 이름과 값이 쌍으로 이루어져 있다.
위와 같은 특징때문에 쿼리 파라미터는 HTTP method GET
, DELETE
요청에만 사용되며, 다음과 같은 상황에서 주로 사용된다.
GET
메소드로 다양한 방식으로 데이터를 전송할 수 있다. 쿼리 파라미터에서 데이터를 이어서 나열할 때 &
연산자를 사용한다.
위의 예시처럼 쿼리 파라미터를 사용할 경우 원하는 데이터를 쉽게 필터링 할 수 있고, 서버의 부하를 줄이기 위해 데이터 수를 조절 하거나, 특수한 데이터를 검색 필터링 할 수 있다.
오늘은 REST API와 그에 따른 Parameter 두 종류를 공부해 보았다.
아직 완벽하게 아는건 아니지만 해당 과정을 정리해 보며 REST API를 왜 사용해야 하는지, 상황에 따라 어떤 parameter를 사용하는게 좋을지 생각하게 된 좋은 시간이었다.