Django REST framework와 pytest를 이용한 RESTful 채팅 API 서버 예제입니다.
- Python 3
- Django 2
- Django REST framework 3
- pytest
- 1:1 채팅
- 채팅방 목록 보기
- 가입 및 로그인이 가능하며 닉네임을 받음
- 메세지는 서버에 저장되며 일정 시간이 지나면 삭제됨
- 메세지 검색
- 메세지 푸시 알람 (임의의 프로토콜로 localhost:7000에 전송)
API 문서에서 확인 가능합니다.
아래의 개발 과정을 통해 어떤 순서로 기능이 구현되었는지 참고할 수 있습니다.
- 개발 환경 세팅 -
.editorconfig
,.gitignore
,pipenv
- settings를 development와 production으로 구분
[commit]
- basic models, serializers, viewsets와 nested router 구현.
[merge commit]
- pytest를 이용한 기본 테스트 추가
[merge commit]
- JWT를 사용해 유저 관련 기능 구현
[merge commit]
- 의존성 추가 - drf-simplejwt
- JWT 인증과 GET/POST 뷰 테스트 추가
- POST 버그 수정, 가입 버그 수정
- 검색 기능 구현
[merge commit]
- 메세지 푸시 알람 구현
[merge commit]
- 의존성 추가 - django-background-tasks
- mock으로 테스트
[commit]
- 일정 시간 후 메세지를 삭제하는 기능 추가
[merge commit]
- Dockerize