@ATNC
Full-stack web\python developer

Зачем нужен RESTful API?

Доброго времени суток.
Я второй день к ряду пытаюсь найти ответ на свой вопрос. Повторю его снова - зачем приложению REST?
Приложение буде делать запросы к БД эффективнее, или передача данных с фронта на бек и наоборот будет осуществляться быстрее? В случаи с Джанго, можно же подключить стандартные методы из коробки, такие как import json, например, и они по сути будуть делать все то же. При этом нам не потребуется создавать несколько новых модулей, таких как serializers.py и писать туда больше кода.
Может я чего-то не понимаю? Возможно для кого-то мой вопрос окажется глупым, но я просто хочу разобраться в каких случаях будет полезно использовать REST архитектуру, а в каких она будет лишней.
  • Вопрос задан
  • 8069 просмотров
Решения вопроса 3
@marazmiki
Укротитель питонов
Вы вот тут про REST пишите, а имеете в виду, вероятно, django-rest-framework (лучшее, на мой взгляд, существущее решение для организации RESTful API для джанги).

Для начала ответьте себе на вопрос: а нужен ли вообще API Вашему сайту. Если объективно нужен (например, с сайтом взаимодействует мобильное приложение, причём не только читает данные, но и отправляет; или фронтэнд построен таким образом, что от сервера требуются только данные, а отрисовка HTML происходит на клиенте; или Вы предоставляете информацию "неживым" пользователям — роботам), то RESTful API хороший выбор. И DRF, соответственно, тоже.

Если всего этого нет и Вас вполне устраивает схема, когда бэкенд генерирует весь HTML и отдаёт его клиенту, то DRF, REST, да и вообще API в целом не нужны.
Ответ написан
gadfi
@gadfi
https://gamega.org
Я не хочу вас обидеть и не могу давать оценку вашим професиональным навыкам по одному посту, поэтому не принимайте ниже написанное на свой счет.
Это в целом распространенная проблема в индустрии, имя которой фреймворкоорииентированные программисты ─ странный вид разработчиков которые думают не категориями алгоритмов, патернами или технологиями, а категориями фреймвокров, не задумываясь что под капотом и как это работает (я не отрицая нужность фреймворков и не призываю писать все с нуля, это другая крайность тру программистов).
Я понимаю назначение REST, но я пока не нахожу смысл его использования Django. Так как существуют дефолтные методы обработки информации таких типов как json, xml, yml...

Вы не совсем верно понимаете что такое rest, это не просто json/xml формат данных. Вам никто не мешает вместо модуля rest api использовать стандартный модуль для работы с json (ровно как и написать его самому) и реализовать апи руками, без дополнительных модулей.
Если совсем коротко то REST это делать все максимально понятно и просто, так чтоб даже без документации было все понятно. CRUD прекрасно ложиться на HTTP-методы GET, POST, PUT и DELETE

Как вы правильно сказали это просто архитектура, нужна она вам в вашем проекте или нет решать вам. А что до кода ... ну не будете вы использовать готовый модуль, но к тому что нужно описывать модели и тд все равно придете, да это не обязательно и можно не делать так как то что творится у вас не сервере клиент не знает, все что он должен знать это документация, но вам же этот код поддерживать.
Ответ написан
@dake1231
Например если вам понадобится дать возможность сторонним разработчикам использовать, изменять данные вашего приложения, им же нужно будет взаимодействовать с вашим сервером как то. Например вы разрабатываете веб приложение и нужно при добавлений новости сделать автопостинг в соц.сети, как вы это сделаете, через API же?
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Deodatuss
@Deodatuss
для одностраничников, когда нужно чтобы страница не перезагружалась, а просто по ajax передавался json который нужно отрендерить на клиенте + для сторонних сервисов, например нужно сделать приложение на андроид для пользования функционала ресурса, и тогда можно спокойно делать все что угодно и как тебе удобно ибо ты знаешь что по такому-то запросу ты получишь такие-то данные
Ответ написан
viktorvsk
@viktorvsk
А что, в Вашем понимании, REST, RESTful?
Ответ написан
baskerville42
@baskerville42
Учусь работать (Junior)
Ну вы скорее всего не понимаете назначение REST. Это такой способ взаимодействия с сервером (он не единый, ещё SOAP есть и другие). То что вы написали о Джанго всего лишь способ выдачи информации, а не способ доступа к ней.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы