Restul API

룰루팍 Lolo Park ·2022년 12월 1일
0

< 키워드 >
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 쓸 때는 ▼ 하고 싶은지 생각해보고

profile
Korean-Arabic Translator, Backend Developer

0개의 댓글