Просто в качестве контекста, я не веб-разработчик или что-то в этом роде, но иногда я пробую небольшие проекты в основном для развлечения, поэтому я могу неправильно использовать некоторые термины.
Недавно я понял, что существует два шаблона для предоставления данных на странице:
- Попросите сервер получить доступ к базе данных, затем отобразите шаблон на основе данных и доставьте пользователю готовую страницу.
- Отправьте незавершенную страницу, и пусть внешний интерфейс заполнит данные скриптами.
Во втором шаблоне я бы полагался на API в качестве моста между моим интерфейсом и моей базой данных, и в основном мой интерфейс делал бы вызовы к конечным точкам /api/something
, которые возвращали бы объекты json, используемые для заполнения страницы.
Хотя это кажется наиболее распространенным шаблоном, он вызывает у меня тревогу, потому что: Что мешает людям получить доступ к моему API из сторонних приложений и получить мои данные в хорошо структурированном виде? Например, если Stack Overflow будет загружать вопросы во внешнем интерфейсе через вызов API, этот API должен быть открыт, а код доступен во внешнем интерфейсе. Что помешает кому-то создать клон Stack Overflow, используя его данные, или просто постоянно вызывать API для интеллектуального анализа данных?
Я понимаю, что данные можно просто очистить, когда страница полностью отрисовывается серверной частью, но это все же кажется менее проблематичным, чем открытое предоставление данных в хорошо структурированном объекте json.