REST : Representational State Transfer
API : Application Programming Interface
자원(resource)의 대표의 상태를 전달
REST API를 통해 REST 서버는 API를 제공, 클라이언트는 사용자 인증이나 컨텐스트(세션, 로그인정보)등을 직접 관리하는 구조로 각각의 역할이 확실히 구분되기 때문에 클라이언트와 서버에서 개발해야 할 내용이 명확해지고 서로간 의존성이 줄어들게 된다.
데이터베이스 내부의 자료를 직접 전송하는 것이 아니라 HTML, XML, JSON와 같은 데이터 형태를 통해 제공하게 되고, 사용자들이 접근할 수 있게 되는 것
👍프론트앤드 개발자와의 협업을 위한 것
👍 급격하게 높아지는 코드의 재활용성 -> 생산성 상승
:: 실제 django rest api를 개발하며 React와 안드로이드 앱 간의 협업을 진행해 보았을 때 백엔드 개발에 굉장히 편리함을 느꼈음!
자원(RESOURCE) - URI
행위(Verb) - HTTP METHOD
표현(Representations)
[참고]HTTP METHOD의 알맞은 역할
POST, GET, PUT, DELETE 이 4가지의 Method를 가지고 CRUD를 할 수 있습니다.
다음과 같은 식으로 URI는 자원을 표현하는 데에 집중하고 행위에 대한 정의는 HTTP METHOD를 통해 하는 것이 REST한 API를 설계하는 중심 규칙.
출처 :: https://meetup.toast.com/posts/92
예전 REST API를 개발하며 포스트맨으로 실행 여부를 판단해본 예시
pip install djangorestframework
pip install django-filter
INSTALLED_APPS = [
...
'rest_framework',
]
urlpatterns = [
...
path('api-auth/', include('rest_framework.urls'))
]
다음은 제가 실제 개발했던 코드 분석을 해보겠습니당~