일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로젝트
- English
- 영어공부
- 화상영어
- 10분
- 사이드
- 개발자
- FIT XR
- 읽기
- realclass
- 월간
- Writing
- 링피트
- leetcode
- 뭐든
- 운동
- 매일
- 영어원서읽기
- 미드시청
- 잡생각
- Daily Challenge
- 파비최
- 만화도
- 괜찮음
- 리얼 클래스
- 쓰릴오브파이트
- 30분
- 스탭퍼
- 3줄정리
- Problem Solving
- Today
- Total
파비의 매일매일 공부기록
Two Scoops of Django - #16장 본문
이번장은 REST API 구현하기에 대한 내용이다.
나는 REST Framework를 사용하는데, 그걸 사용 안 하고 구현하는 걸 의미하는 걸로 보인다.
패키지 API를 제적하기 위한 패키지들 : django-rest-framework, django-tastypie, django-braces, django-jsonview 활용
1. 기본 REST API 디자인의 핵심 : 각 액션에 따른 메서드를 활용하면 됨. 책에 표로 정리되어 있음. 에러코드도 포함
2. 간단한 JSON API 구현 : 일단 모델을 만들고, serializer 클래스를 정의. 엇? django-rest-framework 쓰는구나. 그리고 view를 정의하면 된다. 실무에서 사용하는 방식과 거의 동일. 추가로 permission이 필요하긴 하다.
3. REST API 아키텍처 : 프레임워크 등을 이용해서 빠르게 API 구현은 어렵지 않으나 각 프로젝트에 맞게 변형하고 관리는 쉽지 않을 수 있다.
- 프로젝트 코드들은 간결하게 정리되어 있어야 함 : 말 그대로 간결하게 정리 필요.
- 앱의 코드는 앱 안에 둘 것 : 뷰나 뷰셋이 너무 많을 경우 분할 필요. 그러나 너무 분할해서 작게 나뉠 경우 앱이 너무 많아서 관리가 어려울 수 있음.
- 비즈니스 로직을 API 뷰에서 분리할 것 : 이건 내가 잘 안 되는 듯.. 차후 로직 짤 때 유의해야 할 점!
- API URL을 모아두기 : apiv1.py 등의 파일을 따로 만들어 관리하는 걸 추천
- API 테스트 : 장고 테스트 스위트 이용할 것. 난 이게 아직 안돼서(안 해봐서) 맨날 Postman으로 깔짝깔짝 호출 날리는 중. 사실 일의 효율성이 매우 떨어짐 ㅠㅠ
- API 버저닝 : 버전 정보마다 따로 관리하여 기존 로직과는 무관하게 유지할 것.
4. 서비스 지향 아키텍처 : SOA 관점에서 웹 앱은 독립적이고 분리된 컴포넌트로 구성됨. 각 컴포넌트는 독립된 서버 또는 클러스터에서 구동되며 이러한 각 컴포넌트는 서로 커뮤니케이션을 함. SOA 스타일을 사용하는 주된 이유는 많은 개발자가 상호 충돌 없이 서로 분리된 컴포넌트 작업을 하기가 용이하기 때문.
5. 외부 API 중단하기
- 1단계 : 사용자들에게 서비스 중지 예고 : 6개월 ~ 1달 정도 필요
- 2단계 : 410 에러 뷰로 API 교체 : 중지되었을 경우 표시
6. REST 프레임워크들에 대한 평가
- 현실적인 표준은 내가 사용하는 django-rest-framewok
- 보일러 플레이트(최소한의 변경으로 여러 곳에서 재사용되며, 반복적으로 비슷한 형태를 띠는 코드 할 것)를 얼마나 쓸지 고민할 것
- RPC(Remote Procedure Call) 구현이 쉬운가? : 선택한 프레임 워크에 따라 RPC 호출의 난이도가 달라질 수 있으므로 신중하게 생각해봐야 한다.
- 클래스 기반 뷰 VS 함수 기반 뷰 : 개발자 성향에 따라 다름
7. API에 접속 제한 : 시간제한을 의미. 아래에 제한하는 이유를 나열
- 제한 없는 API 접속은 위험 : 리소스를 파악해야 함.
- REST 프레임워크는 반드시 접속 제한이 필요
- 비즈니스 계획으로서의 접속 제한
8 자신의 REST API 알리기 : API 제작 후에는 다른 개발자 및 회사들에게 이를 안내해야 함.
- 문서 : 반드시 쉽게 이용 가능한 코드 예제를 포함할 것. 여러 도구를 활용하면 좋음
- 클라이언트 SDK 제공 : 여러 언어를 지원하는 SDK를 제공하여 고객 입장에서 API 사용성을 높일 수 있음.
'Study > Python' 카테고리의 다른 글
Two Scoops of Django - #18장 (0) | 2021.06.19 |
---|---|
Two Scoops of Django - #17장 (0) | 2021.06.18 |
Two Scoops of Django - #15장 (0) | 2021.06.16 |
Two Scoops of Django - #14장 (0) | 2021.06.15 |
Two Scoops of Django - #13장 (0) | 2021.06.14 |