Почему некоторые классы Django и приложения по умолчанию называются API?

Я недавно начал использовать Django и столкнулся с несколькими случаями, когда в документации некоторые классы django по умолчанию называются API.

Один из таких примеров находится по этой ссылке , где класс Model упоминается как API.

Это как-то не имеет для меня особого смысла. Я пробовал искать это в Интернете, но помощи нет. Является ли класс Model не классом и не API, или он может быть и тем и другим? Я вообще не изучал Django Rest Framework, может тогда это будет иметь больше смысла?

API (Application Programming Interface) - это общий термин в программировании и библиотеках, это не термин, специфичный для Django или даже веб-фреймворков. В общем случае, любой программный интерфейс, который предназначен для использования кем-то другим, является API. Это может быть модуль, классы и т.д. Обычно они следуют какому-то шаблону проектирования или имеют какой-то элемент согласованности.

Это может сбить с толку, если вы незнакомы с терминологией, из-за близости к веб-фреймворку, который имеет дело с REST/web API, что, вероятно, является наиболее распространенным способом использования термина API. В данном случае документации API не означает web API.

Пакет requests имеет API. Модуль json имеет API. и т.д.

Является ли класс Model не классом и не API, или он может быть и тем, и другим?

Это, конечно, не эксклюзивные термины. django.db.Model, безусловно, является классом и имеет API. Возможно, лучше сказать, что класс Model имеет API или что класс Model является реализацией API Model.

Термин API иногда может использоваться в противопоставлении с пользовательским интерфейсом (UI). REST-интерфейс - это интерфейс программирования (API), фронтенд веб-сайта - это интерфейс пользователя (UI).

Употребляется в предложении:

"Мне нравится API Model, потому что он простой и чистый и хорошо сочетается со всей экосистемой Django"

Согласно google, определение api следующее:

набор функций и процедур, позволяющих создавать приложений, которые получают доступ к функциям или данным операционной системы, приложения или другой службы.

Зная это, Django имеет на самом деле много api, Model, QuerySet, Manager и т.д.

Вернуться на верх