1. RESTful API
API 시스템을 구현한기 위한 아키텍처 중에 가장 널리 사용되는 형식
ex) REST etc
1) What is API?
프론트와 백이 통신하기 위한 인터페이스
2) 장, 단점
- 장점: self-descriptiveness, RESTful API는 그 자체만으로도 API의 목적이 쉽게 이해된다.
- 단점: 표준규약이 없어서, 안티패턴으로 작성되는 경우가 흔하다. (제대로 활용을 못한다.)
3) 기본 배경 지식
- URI
[1] 해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소
[2] https://finance.naver.com/login(login => URI)
- HTTP Method
get, post, delete, put, patch
HTTP request가 의도하는 action을 정의한 것
- Payload
HTTP request에서 server로 보내는 데이터(body) 2. 설계 규칙
- URI 정보를 명확하게 표현해야한다. (resource는 명사를 사용한다.)
- resource에 대한 행위를 HTTP Method(GET,POST, PUT, DELETE)로 표현한다.
URI에 HTTP Method가 포함되서는 안된다.
URI에 동사가 포함되서는 안된다.
- resource 사이에 연관 관계가 있는 경우(/리소스/고유ID/관계있는 리소스)
ex) GET/users/{user_id}/profile
- 파일의 경우 payload의 포맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않는다.
- URI는
/
구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다.
- URI 마지막 문자로
/
를 포함하지 않는다.
ex) GET users/portfolios/(x) > 여기에 연관된 무언가가 또 올 것 같은 암시
- 불가피하게 URI가 길어지는 경우
-
을 사용하여 가독성을 높인다.
-_
는 사용하지 않는다. > _
가 안보여서 가독성이 떨어질 위험성 존재
- URI 경로에는 대문자 사용을 피하도록 규정하고 있다.
*소비자가 보는 url은 프론트에서 배포하는 url이다.
*RESTFUL URL은 기능별로 명시해야한다.
3. Path parameter, Query parameter
1) Query parameter- filtering 기능 가능
2) Query parameter - ordering: 정렬 가능
- 역순: 최신순으로 변경 가능
3) Query parameter - Pagination : 데이터를 끊어서 보내줌
ex) get/products?offset=0&limit=100
4) Query parameter - Searching : 일부 user를 검색
path parameter vs Query parameter
- GET/products/3 === GET/products?id=3
똑같은 결과.. 언제 어떤 방법을 사용해야 할 까?
- query parameters: filtering, sorting, searching
왜? path parameter는 id가 없으면 404 반환하지만, query parameter는 [] 빈정보 반환
- path parameter는 정보를 식별해야할 필요가 있을 때 에러를 띄워야하기 때문에 사용함
나현님 잘 정리해주셔서 한 눈에 잘 들어 오네요 감사합니다 :)