@gabana

Когда нужен MVC, а когда API?

Знаю 2 сайта: у одного архитектура rest api, у другого mvc. Мне сказали что у того проекта который на mvc - там нет api. Ищу теорию в интернете и не могу понять как так. Сам в веб разработке новичок. В вакансиях вижу много что пишут про api (рестовое, но не суть) а про mvc мало, раз в 8-10 меньше. Здесь хотел бы понять когда надо применять api, а когда mvc.
  • Вопрос задан
  • 1266 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
API есть у любой программы. MVC это способ организации кода, наличия API он не исключает. Не стоит сравнивать тёплое с мягким.
Ответ написан
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Понятно же, что человек просто использует термины не по назначению. А имеет в виду способ взаимодействия с клиентом.
Словом "mvc" он называет классический способ, при котором сервер отдает клиенту HTML (а не JSON).
А словом "api" - REST сервис, при котором сервер отдает клиенту как раз JSON.

И суть вопроса сводится именно к различию между этими двумя способами:
- когда сервер генерирует HTML на основе полученных из БД данных, и отдает его браузеру
- или когда в браузере выполняется программа на JS, которая запрашивает с сервера только данные, а потом на их основе генерирует HTML

Поскольку первый способ является, условно говоря, "классическим", то про него в вакансиях и не пишут особо. А второй, поскольку является относительно "новым", и требует наличия пары несложных скиллов в дополнение к классическому, его оговаривают отдельно.

При этом с точки зрения бэкенд программиста разницы принципиальной между этими способами нет.
Главное в программе - это её бизнес-логика. И уметь надо в первую очередь писать её.
А в каком формате отдавать данные в браузер - дело десятое. И выбирать между "mvc HTML" и "api REST" нет смысла - уметь надо и то и то.

Ну и, как уже объяснили, MVC - это совсем другое. Архитектура приложения. Причем она используется для любых приложений, независимо от типа отдаваемых данных. M и C в "api" приложениях используются в полный рост. Только V немного упрощается. при этом поскольку MVC подразумевается по умолчанию, то и писать её в вакансиях тоже особого смысла нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
API нужен, когда ожидается взаимодействие с другими сайтами и программами. Да хоть с Ведроид-прогой. В нагрузку можно сделать клиентскую часть полностью на JS, чтобы меньше повторяться — тогда это и будет ваш «сайт на API».

MVC (применительно к вебу) — это хотите сделать рендеринг всего вывода на сервере и делите вывод на слои: этот отвечает за подготовку информации, а этот — за её вывод в HTML.
Ответ написан
Ваш ответ на вопрос

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

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