AndreyMelnikov.MyBlog # мой блог: IT-марафон.

Все мои посты

Django. Знакомство с REST.

На сегодняшний день всемирная сеть интернет использует модель “клиент-серверного” взаимодействия. Клиент отправляет запрос — сервер ему отвечает. Общение браузеров и веб-сайтов (первые выступают в роли клиента, а вторые в роли сервера) происходило при помощи html-рендеринга, и HTTP протокола.

Чтобы получить данные с веб-сайта, браузер отправляет запрос GET к серверу. Сервер формирует ответ в виде html-страницы и передает ее браузеру. В этой самой html-странице сервер заложил все необходимые веб-формы, заполнив которые, пользователь мог бы передать свои данные обратно на сервер. Когда мы ввели свои данные в форму на сайте, браузер отправляет серверу запрос POST, в котором содержатся наши данные, а сервер обрабатывает их и записывает в базу данных.
Но, с течением времени такая схема взаимодействия перестала удовлетворять постоянно растущие требования к веб-разработке. Интернет проникает в нашу жизнь все глубже и глубже. Интеграция с всемирной сетью происходит все сильнее. На данный момент емкость протокола IPv4 исчерпана. На смену ему приходит IPv6, что говорит о том, что в будущем, практически, каждая лампочка может иметь свой собственный IP-адрес и подключаться к интернет (internet of things, IoT).
Итак, появление мобильных приложений, различных устройств с доступом в интернет, привело к тому, что для них уже не подходил стандартный способ html-рендеринга на сервере, ведь теперь каждому клиенту нужно было отрисовать данные по-своему.

Для всех этих задач есть другой способ обмена данными — Web API (Application Programming Interface). Смысл этого способа в том, что сервер передает клиенту не html-страницу, а непосредственно данные, никак не влияя на то, как эти данные будут в итоге представлены. Наиболее популярными форматами для передачи данных становятся XML и JSON. Таким образом, сервер полностью избавляется от задачи отрисовки данных. Постепенно Web API стал приобретать все большую популярность. Этому способствовало быстрое развитие инструментов на языке JavaScript, а также появление различных веб-фреймворков.
Браузерные приложения научились отрисовывать веб-страницы самостоятельно, получая чистые данные с сервера. Веб-приложения на сервере научились создавать API быстро и легко. Так сформировалась четкое разделение на Backend и Frontend разработку: тех, кто поддерживает приложение на сервере, и тех, кто делает браузерные (клиентские) приложения. А Web API стал универсальным способом общения для сервера и всех его клиентов (браузеров, мобильных приложений, других серверов).
Со временем становилось понятно, что необходим некий стандарт, который охватит все тонкости в общении между компонентами (как передавать данные, в каком формате, как сообщать об ошибках), ведь на простых договоренностях между разработчиками далеко не уедешь. И таким стандартом стала архитектурная модель взаимодействия компонентов – REST.

Representational State Transfer (REST) для управления данными использует привязку к стандартным методам HTTP-протокола. Существует несколько стандартных действий для работы с данными — это Create, Read, Update, Delete (CRUD).

• Create - соответствует HTTP методу POST
• Read — соответствует HTTP методу GET
• Update — соответствует HTTP методу PUT
• Delete — соответствует HTTP методу DELETE

На сегодняшний день, наверное, каждый язык программирования для веб-разработки имеет в своем арсенале фреймворк REST-API. REST не обошел стороной и Django. Благодаря чему на сегодняшний день мы имеем библиотеку Django REST Framework, подключаемую при помощи:

pip install djangorestframework

В написании данной статьи использовались материалы из источника: https://mkdev.me/posts/chto-takoe-django-rest-framework

Назад к списку постов