Почему некоторые классы 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 и т.д.