< 키워드 >
API
Endpoint
원활한유지보수, 개발자사이의 원활한 커뮤니케이션도모
path parameter
query parameter
상/하위관계
직관적!
restful api 는 무엇인가?
- REST 하게 작성 된 API 를 말한다
- rest? reperesentational satate transfer
: 직관적으로 api, endpoint를 보여주며 전달 -> BE와 FE가 효율적으로 소통
- 매우 간단하여, 많은 곳에서 사용하고 있음.
- Restful API 보다 더 간단?효율? 적인 graphicQL 도 있다 (meta가 활용하고 있음)
- URI를 통해서 프론트엔드 -> 백엔드 요청할 수 있다 URI는 endpoint이다.
- protocol에 https 가 들어가는 것 -> encrypt (암호화)하는 것이다
<장단점>
- self-descriptiveness 자체만으로 목적이 이해가 됨
- 표준규약이 없어 * 안티패턴으로 작성되는 겨우가 흔함(ex. /products/all -> 비효율적이거나 비생산적인 패턴)
< ★★RESTful API 설계 원칙★★ >
- 플랫폼에 무관하다 : Django 등의 다른 플랫폼에서도 사용하기 용이
- 동사는 메서드에만! GET POST PATCH DELETE 등 GET/find/user/1 은 이상함. GET/user/1이 맞음
- 상위개념 -> 하위개념 표현할 때 '/' 사용하는 것임. GET/users/{user_id}/posts
- URI 마지막 문자로 '/'표현안함.
- 마지막 URI에 path parameter, query parameter가 계속 쳐 붙음 - 웹서핑할 때 url 주소가 계속--- 길어지는 것을 보면 알지.
- URI가 길어지는 경우 '-'을 사용하여 가독성을 높인다 (띄어쓰기할 때 그렇게 쓴다는 말)
:예)https://github.com/up-for-grabs/up-for-grabs.net/tree/gh-pages/.vs
code
:예)GET/users/1/ordered_items -> GET/users/1/order-items
- 파일 확장자는 URI 에 포함시키지 않고 hearders에 포함
GET/users/1/profile-photo.jpg -> GET/users/1/profile-photo 왜냐! .jpg, .xml 이렇게 되어버리면 domain 주소와 헤깔림
- 응답 Response의 status code에 맞는 규칙을 따라야함. 200, 201, 400 등등등
- 소 !!!! 문 !!!! 자 !!!!
- Cacheable : 모든 페이지에 재사용될 데이터가 있다면 cash 로 임시메모리에 저장한다음 계속 가져올 수 있도록.
e-tag를 통해 확인.?????
- Layered System
서버에 직접연결
중간 서버를 통해 연결?????????
- 마지막 query patmeter - query string 보안에 민감하지 않도록. header ??????????- **다시 듣기
< Path Parameter >
- PATCH 와 PUT 의 차이 : 부분 / 일괄 삭제 -> 부바부 사바사로 PUT 만 사용하는 곳도 있음 주의
사바사 부바부에 따라 어떻게 business logic 을 짜냐에따라!
204 no cotent -> 삭제 되었으니 지금 없다. 잘 삭제되었다. '2'04
< Query Parameter >
- filtering 에 좋다 예) 상품검색하고 할때
- price = 3000 인 것만 불러와라
- name = 사과 price = 3000 인 것 불러와라
- 오림차순으로 표현
- 순서 order : 신상품순,
- page를 나눈다 예) 댓글 많이 달릴 때 page를 나눠야할 때!
- 0&limit=100 : 0에서 100까지만 노출
/products?limit=100&offset=0 0에서 100
/products?limit=100&offset=200" 100에서 200
< path 냐 query 냐 >
- 상세정보의 id=3 만 갖고 오고 싶은데 굳!이! query string으로 해야하는가?
Query Parameter 쓸 때는 ▼ 하고 싶은지 생각해보고