ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Django-rest-framework(DRF)를 활용한 효율적인 웹 API 만들기
    카테고리 없음 2021. 11. 23. 13:47

    <API 서버란?>

    - 앱/웹 서비스를 만드는 개발자들이 이용하는 데이터 위주의 서비스. 시간이 지나도 호환성을 유지해야 한다. 

    - Server가 Client에 요청을 받으면 HTML 형식으로 보내주게 된다. 

     

    <REST(Representational State Transfer)>

    - http의 url과 http method를 사용해서 API 가독성을 높인 구조화된 시스템 아키텍쳐. 즉, 아키텟쳐(framework)의 종류 중 하나이다.

    - 하나의 URL로 최소 4가지의 HTTP method를 전송할 수 있다.

    - 프로토콜에 독립적 => 일반적인 REST 구현에서 HTTP를 사용

     

    - RESTful API의 몇 가지 디자인 원칙 

    1. 리소스(django model)를 중심으로 디자인

    2. 클라이언트에서 엑세스할 수 있는 모든 종류의 개체/서비스가 리소스에 포함

    3. 리소스마다 해당 리소스를 고유하게 식별하는 식별자

    4. 요청/응답 포맷으로 흔히 JSON을 사용

    5. 균일한(uniform) 인터페이스를 적용

     

    <DRF를 사용하는 이유>

    - 웹 브라우저 API는 범용성이 크다. 개발을 쉽게 만들어준다. 

    - serializer 기능을 제공 

     

    <HTTP 메서드를 기준으로 기본 작업 정의> 

    같은 리소스더라도, 요청에 따라 의미가 달라질 수 있다. 

    PUT은 전체를 대체(update)하는 메서드이고, PATCH는 부분을 대체(update)하는 메서드이다. 

    <Django-rest-framework의 주요 기능들>

    Serializer/ ModelSerializer를 통한 데이터 유효성 검증 및 데이터 직렬화

    각종 Parser를 통한 데이터 처리 

    APIView / Generic / ViewSet / ModelViewSet를 통한 요청 처리

    각종 Renderer를 통한 다양한 응답 포맷 지원

    인증/ 권한 체계 - 써드파티를 통해 JWT 지원

    Throttling (최대 호출 횟수 제한) 

     

    <CRUD : API의 기본적인 기능> 

    Create / Read / Update / Delete

     

    <JSON>

    JSON은 JavaScript Object Notation의 줄임말로서 데이터의 송수신을 자바스크립트 객체로서 수행할 수 있게끔 하는 가벼운 문자열 데이터 표현식. 

     

    django에서 JSON

    JSON은 하나의 자바스크립트 객체처럼 보인다. 하지만 정말 자바스크립트 객체인 것은 아니다. 자바스크립트 객체를 통해 데이터를 송수신하다 보면 자바스크립트를 인지하지 못하는 경우가 발생할 수 있다. 따라서 JSON 문자열 타입으로 전해주는 것이다. 이처럼 자바스크립트 객체를 JSON으로 바꾸는 것을 직렬화(Serializer)라고 한다! 

     

    <json으로 바꾸는 방법?> 

      Data = { }

      DataJson = json.dumps(Data) 

    이것만을 통해 바꿀 수 있다. 

    JSON에서 python dictionary로 다시 돌리는 방법은?

      DataReturn = json.loads(DataJson)

     

     

     

     

Designed by Tistory.