RESTful API

최형택·2022년 1월 30일
0

1.RESTFUL의 의미

Representational State Transfer의 약자로(REST),
웹에 존재하는 자원(이미지, 동영상, 텍스트 등 데이터)에 고유한 URI를 부여하여 해당 자원에 대한 주소를 부여하는 것입니다. 즉, 정확히 말하면
http리소스를 URI로 표현하고 그것을 바탕으로 http method로 정의 + playload로 표현

그래서 restful이란 무엇이냐 ..성질, 특성 따위의 뜻을 가진 형용사를 만드는 접미사로보면된다. 즉 , 위에 있는 형식에 만족된 표현된것을 'RESTFUL'하다 라고 한다.

1-1.restfulapi의 의미와 동작원리

웹 데이터 전송 방식 중 하나로 API의 엔드포인트 구조를 구현하는 방식.

모든 자원에는 고유한 ID가 존재하고, 이 자원은 Server에 존재합니다.
그래서 API에서 전송하는 자원(resource)을 URI로 표현하고
리소스를 구별하는 ID는 '/exgroups/:exgroup_id'와 같은 HTTP URI 입니다.'/exgroups/:exgroup_id'와 같은 HTTP URI앞에 행위(Verb) 즉, Method를 붙여보냅니다.

결론: URI 주소로 HTTP 메소드(post,get) + URI 주소로 원하는 정보를 요청 => endpoint의 기능이 동작하면서 필요한 정보와 status code를 client server로 반환.

그림으로 표현하면 이런형식이다.

1-2 restfulapi의 설계규칙

URI 마지막 문자로 / 는 포함 금지
ex) GET users/test/   < --- X

마지막 문자로 쓰지 않기 위해 우리는 settings.py 에서 APPEND SLASH=FALSE를 넣어준다

URI 가 길어지게 되면 - 를 넣어주고 _ 언더바 는 사용하지않는다.

URI 경로에는 대문자 사용을 피해라

요기서 잠깐....URI 와 URL의 차이점?
URL은 Uniform Resource Locator로 인터넷 상 자원의 위치를 의미합니다.
반면 URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성으로,
URI는 URL을 포함하게 됩니다. URI가 URL보다 포괄적인 범위라고 할 수 있습니다. 즉, URI가 URL의 상위개념이라고 볼수있습니다.

2.PATH PARAMETER

Path Parameter 와 Query String의 의미는 따로정리했다.
https://velog.io/@knuckles6974/TIL-Path-Variable-%EC%99%80-Query-Parameter

2-1 PATH PARAMETER -GET

보다시피 한개의 정보나 여러개의 정보를 가져온다

2-2 PATH PARAMETER - POST, PATCH

post는 기존정보에 대한 요청, patch는 기본정보에 다른정보를 업데이트시키라고 요청하는것이다.

2-3 PATH PARAMETER - DELETE

요청을 시키면 그에대한 확인으로 (정확한요청으로 삭제가 되었을시) status code 204를 반환시켜준다.

3.QUERY STRING

Path Parameter 와 Query String의 의미는 따로정리했다.
https://velog.io/@knuckles6974/TIL-Path-Variable-%EC%99%80-Query-Parameter

3-1 QUERY STRING - GET

Path parameter가 정제되지 않은 데이터를 호출해오는 것에 비하면,
Query string는 좀 더 다양한 주문과 복잡한 조건을 줘서 내가 원하는 정제된 결과물을 얻을 수 있다.

3-2 QUERY STRING - GET

ordering을 하면 이렇게 1번id를 가진 리소스가 맨밑으로갈수있다.

3-2 QUERY STRING - GET


Path parameter가 모든 회원들을 호출한다면, Query string은 특정 조건을 주어서 정제된 결과물을 호출할 수 있다.

결론: 그래서 어떨때 뭘쓰면 더 좋은지.....????

PATH PARAMETER

는 원하는 조건의 데이터들 혹은 하나의 데이터에 대한 정보를 받아올 때 적절

QUERY STRING

은 filtering, sorting(정렬), searching에 적절

4.STATUS CODE

0개의 댓글