RESTful API란?
- API 시스템을 구현하기 위한 아키텍처 중에 가장 많이 사용되는 형식이다.
json 형태로 받는 것
- 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식.
- 가장 큰 장점은 API의 목적이 쉽게 전달된다. 단점으로는 표준 규약이 없기 때문에 안티패턴으로 작성되는 경우가 많다.(*실제 사용되는 패턴이지만 비효율,비생산적인 패턴)
RESTful API 설계 규칙
- URI 정보를 명확하게 표현해야 한다. (resource는 명사를 사용함.회사에 따라 단수 복수 다르다. 전체적인 흐름으로는 복수로 명시한다)
- resource에 대한 행위를 HTTP Method(GET,POST,PUT,DELETE)로 표현한다
URI에 HTTP Method,동사가 포함되서는 안된다.
- URI는 / 구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다.
URI 마지막 문자로 /를 포함하지 않는다. ex) GET users/portfolios/ (x)
- 불가피하게 URI가 길어지는 경우 -를 사용하여 가독성을 높인다.
- URI 경로에는 대문자를 사용을 피하도록 규정.
Path parameter,Query parameter
Path parameter란?
데이터를 넘겨주는 방식 중 하나이다. Query parameter과는 다르게 식별하는데 유리하다.
Query parameter ?
뒤에 -를 쓰지 않고 보내는거 UI가 끝내는지점 ?를 쓴다.
필터링 이외에도 Ordering 오름차에서 내림차로도 가능한다.(ex) 별점순 가격순 클릭했을 때 정렬이 가능하다.
Pagination offset 시작값 limit 값이다/ 한 페이지에 보여주고 싶은 것을 국한 시키고 싶을 때 사용한다. ex) GET/products?offset=0&limit=100
path parameter와는 다르게 정렬 시킬 때 유용하다.
ex) GET/products?price=3000원
Status Code
-Successful : 200번대(성공 응답)
-Redirection : 300번대(리다이렉션 응답)
-Client Error : 400번대(클라이언트 Error)
-Server Error : 500번대(서버 Error)
✍✔ 개발자 도구 Network에 주로 볼 수 있다. 200이면 정상 작동 400 넘어가면 이상이 있는 것이고 500은..... 보통 높은 확률로 백엔드에서 문제가 있다고는 하지만 아주 간혹 프론트에서 문제가 있어서 발생할 수 있다고 하니 만약 보게 된다면 같이 해결 하면 될 것이다 :-)