TeamPomPom / MukMap-Server

DRF / AWS 서버리스 배포를 활용한 Django api 서버 저장소 입니다.
1 stars 0 forks source link

GraphQL vs Restful api #1

Closed kangraemin closed 2 years ago

kangraemin commented 4 years ago

작업 도중에 학습 한 내용 / 공유 할만한 내용들을 공유 하는것을 원칙으로 진행합니다.

이슈 내용

API 서버를 구축하기 위한 통신 방법으로 GraphQL과 REST api를 학습하고, 통신 방법을 선택 해야 합니다.

해당 이슈에서는 API를 위해 REST api / GraphQL 중 어떠한 것을 선택 할 지 고민 / 학습 한 내용을 공유합니다.

추가적으로, Django에서 REST api를 위한 라이브러리인 DRF ( Django REST Framework ) 와 GraphQL을 위한 라이브러리인 Graphene / Ariadne 에 대해 학습한 것을 공유합니다.

다음 작업들이 진행되어야 합니다.

kangraemin commented 4 years ago

DRF / Graphene / NodeJS GraphQL

기술적인 상세한 내용( 구체적인 구현 방식 )은 따로 정리하지 않겠습니다.

구체적인 구현 방식은 각 기술의 공식 홈페이지를 참조 해주시고, 아래의 내용은 제가 공부 했던 내용들을 확인 할 수 있는 링크들 입니다. 참고 부탁드립니다.

kangraemin commented 4 years ago

장고를 서버 프레임워크로 이용 할 것이기 때문에, 장고 위주로 REST / GraphQL을 비교 하도록 하겠습니다.

REST ( DRF )

장점

단점

GraphQL ( Graphene )

장점

단점

결론

개발의 편리함과 안정성을 위해 첫번째 api 배포 ( api version 1 )에서는 DRF를 사용 하되, Over / Under fetching문제가 계속해서 대두된다면 GraphQL을 v2로 도입하도록 하겠습니다.

kangraemin commented 4 years ago

Apollo는 클라이언트 측에서 GraphQL 통신을 편하게 해주는 라이브러리입니다.

GraphQL이 필요하여 도입 할 시에 정리하도록 하겠습니다.

kangraemin commented 4 years ago

구현해야할 API 리스트는 이슈 / 문서를 따로 만들어 관리하겠습니다.